【问题标题】:Keyboard overlaps Entry in Xamarin Forms键盘与 Xamarin 表单中的条目重叠
【发布时间】:2019-03-22 04:41:37
【问题描述】:

ContentPage 内部有ListViewEntryButton,如下所示:

<StackLayout Orientation="Vertical">
   <ListView>
   ...
   ...
   </ListView>

   <StackLayout Orientation="Horizontal">
      <Entry ... />
      <Button ... />
   </StackLayout>
</StackLayout>

当我关注Entry 时,键盘会与EntryButton 重叠。 我知道,有一个解决方案:将元素放在ScrollView 中,但是这个解决方案在ScrollView 中滚动ListView 会产生很大的问题。我应该怎么做才能让它正常工作?

【问题讨论】:

  • 你想用这个实现什么?你能分享一下用户界面吗?
  • 这里是截图imgur.com/hDGw97w
  • 这个截图加了ScrollView,键盘没有与Entry和Button重叠,但是ListView滚动和ScrollView滚动冲突
  • 将条目和按钮添加到 ListView.Footer 不是一种选择,因为它们在滚动时不应该移动并且它们的位置应该是绝对的。

标签: xaml xamarin.forms


【解决方案1】:

首先不要将ListViewScrollView 混在同一个视图中,结果不会ok!

相反,我建议您查看此存储库 Xamarin.Forms.Plugins - KeyboardOverlap here

这个存储库的主要目标是解决iOS上的条目与键盘重叠的问题,还有一个你可以使用的nuget包,你可以找到它here

但它也是完全开源的......因此您可以查看代码实现和自定义渲染器,并在需要时进行更多调整。

祝你编程好运!

【讨论】:

  • 看来这个插件不起作用:我将它包含在 iOS 项目中,在 Xamarin.Forms.Init() 之后添加了 KeyboardOverlapRenderer.Init();当我关注Entry时,它不会向上移动
  • 尝试手动添加这个自定义渲染器,看看会发生什么。
  • 谢谢,我知道了。包不起作用,因为我已经有一个 ContentPage 的自定义渲染器。
  • 很好,很高兴听到这个消息,也感谢您接受这个答案。 :)
  • @SgtMaddonut 在 ios 项目中包含键盘重叠 nuget 并添加了初始化行,但是当焦点输入时键盘仍然隐藏该条目。我没有在 contentpages 中使用任何 customerender,请帮帮我?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多