当软键盘覆盖部分内容时,如何允许在Xamarin.Android(Xamarin.Forms)中滚动?

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

我有一个Xamarin.Forms活动。我通过以下方式将scrollview包裹在我的内容中:

<ScrollView
    HorizontalOptions="Center"
    VerticalOptions="Center">

当活动的自然高度高于显示大小时,这允许滚动。另一方面,当用户点击文本框并且弹出软键盘时,用户无法滚动以查看软键盘后面的问题。

question for native android之后,我在我的样式文件中添加了:

  <style name="MainTheme" parent="MainTheme.Base">
  </style>
  <!-- Base theme applied no matter what API -->
  <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowNoTitle">true</item>

    <item name="windowActionBar">false</item>

    <item name="android:windowSoftInputMode">stateVisible|adjustResize</item>
    ...

不幸的是,当软键盘启动时,这并没有给我我想要的滚动行为。

android xamarin xamarin.forms xamarin.android
2个回答
1
投票

有多种方法可以做到这一点,但这个方法最多的是Xamarin精神:

Xamarin.Forms.Application.Current.On<Xamarin.Forms.PlatformConfiguration.Android>().UseWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize);

2
投票

您需要在MainActivity.cs中设置WindowSoftInputMode

这就是你如何做到的

[Activity(Label = "MyActivity", Theme = "@style/CustomTheme", WindowSoftInputMode = SoftInput.AdjustResize)]

或者在MainActivity的OnCreate()方法中放置一行。

Window.SetSoftInputMode(Android.Views.SoftInput.AdjustResize);
© www.soinside.com 2019 - 2024. All rights reserved.