有一个Xamarin Android应用程序,但我确定这个问题也适用于非Xamarin。我的大多数片段都具有EditText控件。每次他们获得焦点时,软键盘都会按预期显示。但是,软键盘将覆盖视图下半部分的我的EditText框。
我看到可以在Activity类属性或清单中设置以下内容。我在“活动”类属性中对此进行设置:
[Activity(Label = "MainActivity", ScreenOrientation = ScreenOrientation.Portrait, Theme = "@style/AppTheme", LaunchMode = LaunchMode.SingleTask, WindowSoftInputMode = SoftInput.AdjustResize)]
如您所见,我将WindowSoftInputMode设置为AdjustResize。好消息是,我可以确认这实际上对实际MainActivity上的EditText控件有效。
但是,从有效的MainActivity中,我也将片段放入了FrameLayout中。因此,我的MainActivity axml看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:animateLayoutChanges="true"
android:background="@drawable/sortingpackages">
<LinearLayout
android:id="@+id/LayoutControls"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="#FFFFFF"
android:animateLayoutChanges="true"
android:layout_marginTop="10dp">
<ImageView
android:src="@drawable/odenlogotransscaled"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView1"
android:layout_marginTop="0.0dp"
android:layout_marginBottom="0.0dp"
android:layout_centerInParent="true"
android:layout_gravity="center_horizontal" />
<Spinner
android:layout_width="220dp"
android:layout_height="40dp"
android:id="@+id/spSelectLocation"
android:layout_margin="10dp"
android:spinnerMode="dialog"
android:dropDownWidth="220dp"
style="@style/SpinnerOdenTheme" />
<EditText
android:layout_width="220dp"
android:layout_height="35dp"
android:id="@+id/tbUserLogin"
android:layout_margin="10dp"
android:hint="@string/UserLogin"
android:ellipsize="start"
android:gravity="left"
android:inputType="text"
android:background="@drawable/EditTextStyle"
android:cursorVisible="true"
android:textColorHint="#000000"
android:padding="3dp" />
<Button
android:text="@string/Login"
android:layout_width="220dp"
android:layout_height="wrap_content"
android:id="@+id/btnLogin"
android:layout_margin="10dp"
style="@style/TextButtonOdenTheme" />
<Button
android:text="@string/Exit"
android:layout_width="220dp"
android:layout_height="wrap_content"
android:id="@+id/btnLogoutExit"
android:layout_margin="10dp"
style="@style/TextButtonOdenTheme" />
</LinearLayout>
<Button
android:text="@string/Settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnSettings"
android:layout_margin="10dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
style="@style/TextButtonOdenTheme" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/LoginFragmentContainer"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</RelativeLayout>
您可以看到我将Fragment Container的FrameLayout放在底部。我使用支持片段管理器交换到此FrameLayout中的任何片段均不遵守软键盘设置并调整大小或平移(我尝试过两种设置)。
我还尝试按照我正在阅读的帖子的建议将FrameLayout或整个Layout包装在ScrollContainer中,但没有任何解决方法。
其他人在将FrameLayout中的片段调整为软键盘时还有其他问题,我该如何解决?
谢谢!