iOS上的Xamarin.Forms:当软键盘出现时,缩小页面高度而不是将其向上移动

问题描述 投票:0回答:1

遇到的问题是软键盘与位于底部的输入字段重叠。

enter image description here

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 xamarin.forms xamarin.ios soft-keyboard
1个回答
0
投票

在iOS项目中使用这个CustomRenderer类而不是KeyboardOverlap插件就可以了。

不要忘记使用您需要该功能的具体页面类名自定义第14行。否则,将为您的应用中的所有页面调用渲染器!

非常感谢Jack Hua - MSFT

© www.soinside.com 2019 - 2024. All rights reserved.