[Xamarin.Forms 2.5.0.91635] [Android 5,6,7,8]
我有一个页面,其中包含一个包含输入条目和标签的列表视图。我的问题是在Android中,点击第一个或第二个条目时,会出现键盘。我希望它向下滚动页面以选择最后一个条目,但我无法看到(或聚焦)最后一个条目,因为它与软键盘重叠。当软键盘启用/可见时,我无法滚动到最后一个条目,因为软键盘隐藏了最后一个键盘。 当我隐藏/禁用软键盘时,我可以滚动到最后一个条目,但我不想要这个!
我在互联网上搜索并尝试了很多,但没有任何作用。
无效的解决方案: https://gist.github.com/jimmgarrido/e36033b26f01e8da091fd321d41d991a xamarinformscorner.blogspot.nl/2016/06/soft-keyboard-hiding-entries-fields-in.html https://forums.xamarin.com/discussion/62668/appcompat-does-not-resize-screen-with-keyboard
<ContentPage.Content>
<ScrollView>
<StackLayout x:Name="StackLayoutButtons" HorizontalOptions="Center" Orientation="Horizontal">
<Button x:Name="PreviousButton" WidthRequest="35" FontSize="23" FontAttributes="Bold" Clicked="PreviousButton_OnClicked"></Button>
<Button x:Name="DatePickerButton" FontSize="20" Clicked="DatePickerButton_OnClicked"></Button>
<DatePicker x:Name="DatePicker" Format="dddd d MMMM yyyy" VerticalOptions="Center" HorizontalOptions="FillAndExpand" IsVisible="False" IsEnabled="False"/>
<Button x:Name="NextButton" WidthRequest="35" FontSize="23" FontAttributes="Bold" Clicked="NextButton_OnClicked"></Button>
<Button x:Name="LastButton" WidthRequest="50" FontSize="23" FontAttributes="Bold" Clicked="LastButton_OnClicked"></Button>
</StackLayout>
<ListView x:Name="ListViewItemPage" ItemTapped="ListView_OnItemTapped">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<RelativeLayout x:Name="RelativeLayout" >
<Label x:Name="DescriptionLabel" Text="{Binding Description}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Y, Factor=0, Constant=15}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=X, Factor=0, Constant=15}" />
<Entry x:Name="Entry" WidthRequest="85" Keyboard="Text" HorizontalTextAlignment="Start" FontSize="19" HorizontalOptions="Center" VerticalOptions="Center" Text="{Binding Value, Mode=TwoWay, Converter={StaticResource FloatValueConverter}}" Unfocused="ValueEntry_OnUnfocused"
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Y, Factor=0, Constant=10}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant={StaticResource ConstantMultiPlatform}}" >
<Entry.HeightRequest>
<OnPlatform x:TypeArguments="x:Double">
<On Platform="iOS" Value="28"></On>
<On Platform="Android" Value="42"></On>
<On Platform="UWP" Value="32"></On>
</OnPlatform>
</Entry.HeightRequest>
</Entry>
</RelativeLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ScrollView>
</ContentPage.Content>
也许这里的某个人有这个错误的工作解决方案/解决方法?
答案 0 :(得分:5)
这是一个众所周知的问题,是由于Xamarin Forms上的错误引起的。
由于存在错误,将WindowSoftInputMode属性设置为活动本身并不能完全起作用,因此您必须通过在
下添加以下代码行来显式设置此属性。LoadApplication(new App());
致电:
Xamarin.Forms.Application.Current.On<Xamarin.Forms.PlatformConfiguration.Android>().UseWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize);
答案 1 :(得分:0)
尝试在droid项目中打开MainActivity并添加&#34; WindowSoftInputMode = SoftInput.AdjustResize,&#34;像这样:
iOS
答案 2 :(得分:0)
我看到这是一个旧线程,但我也可以认为您在滚动视图中具有列表视图。过去很麻烦。尝试使用listview标头,然后将按钮放在那里。