【问题标题】:Xamarin form Keyboard overlapping Entry fieldXamarin 表单键盘重叠输入字段
【发布时间】:2019-02-09 20:09:58
【问题描述】:

我想在打开键盘时滚动页面。现在键盘正在覆盖我的其他输入字段。 我试过软输入法。但它不适用于 xamarin 形式。

我该怎么办?

【问题讨论】:

  • 在布局中添加滚动视图。
  • 试过了..不工作
  • 我在下面添加了代码。请看那个。并且不要忘记将代码放在滚动视图中。
  • 您接受的答案中的 CenteredStackLayout 是什么?

标签: xamarin.forms


【解决方案1】:

您必须在输入焦点上添加手动翻译。在构造函数中尝试以下代码:

 this.entryname.Focused += (s, e) => { SetLayoutPosition(onFocus: true); };
 this.entryname.Unfocused += (s, e) => { SetLayoutPosition(onFocus: false); };

然后只需粘贴下面的方法:

void SetLayoutPosition(bool onFocus)
    {
        if (onFocus)
        {
            if (Device.RuntimePlatform == Device.iOS)
            {
                this.CenteredStackLayout.TranslateTo(0, -100, 50);
            }
            else if (Device.RuntimePlatform == Device.Android)
            {
                this.CenteredStackLayout.TranslateTo(0, -100, 50);
            }
        }
        else
        {
            if (Device.RuntimePlatform == Device.iOS)
            {
                this.CenteredStackLayout.TranslateTo(0, 0, 50);
            }
            else if (Device.RuntimePlatform == Device.Android)
            {
                this.CenteredStackLayout.TranslateTo(0, 0, 50);
            }
        }
    }

您可以根据需要将“50”更改为任何值。

【讨论】:

  • 您的答案中的CenteredStackLayout 是什么?
  • 这是我的根堆栈布局。
  • 谢谢 ..+1 来自我
  • @SrustiThakkar 这是我的实际问题stackoverflow.com/questions/56427967/…。我是按照@AndroDevil 的建议来的。您的解决方案正在使用ScrollView。我有一个有 2 行网格的 ChatPage。第一行有 ListView,第二行有 Editor & Send 按钮。如果我使用ScrollView,我的编辑器会在加载时进入屏幕下方。我每次都需要把它拖上来查看编辑器。你能建议如何克服它吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-22
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
  • 2011-02-27
相关资源
最近更新 更多