遇到的问题是软键盘与位于底部的输入字段重叠。
XAML代码:
<ContentPage.Content>
<AbsoluteLayout VerticalOptions="Fill">
<ScrollView AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0,0,1,0.9">
<Label Text="Heading" />
</ScrollView>
<Entry x:Name="SearchEntry" AbsoluteLayout.LayoutBounds=".5,1,1,.1" AbsoluteLayout.LayoutFlags="All" Placeholder="Suchen..." ReturnType="Done" />
</AbsoluteLayout>
</ContentPage.Content>
我安装了KeyboardOverlap!通过nuget插件。它将整个页面向上移动,直到条目再次可见。该条目可见,但页面顶部不再可见,因为它已向上移动。
另一个经常提到的解决方案是将页面内容包装在ScrollView中。因为我明确需要一个AbsoluteLayout作为根内容,遗憾的是不是解决方案。
我正在寻找一种缩小页面高度的解决方案,而不是在软键盘出现时将其向上移动。
为什么我需要这个?该页面基于entrie的输入以动态填充搜索结果。如果结果很少,由于页面向上移动,它们不可见。用户可能认为没有任何搜索结果。显示“无搜索结果”等文字。在条目上方将是一个简单的解决方案,但在这里不是一个选项。
在iOS项目中使用这个CustomRenderer类而不是KeyboardOverlap插件就可以了。
不要忘记使用您需要该功能的具体页面类名自定义第14行。否则,将为您的应用中的所有页面调用渲染器!
非常感谢Jack Hua - MSFT!