Android - 键盘消失时留下空白 space
Android - A blank space remains when the keyboard disappears
我的键盘有问题。当它消失时,它所占据的space保持空白,其余布局不调整
普通屏幕:
带键盘:
键盘已关闭:
我以前从未见过这个,所以我什至不知道从哪里开始看。这发生在 4.2.2 和 5.1
另一条重要信息是,这是一个包含所有内容的自定义 LinearLayout。也许与此有关。如有必要,我可以上传任何代码。
这是主布局文件shell。
<com.edgetechlabs.app_v2.MasterLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Menu (Drawer)-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:visibility="visible"
android:layout_height="match_parent"
android:orientation="vertical" >
<ScrollView
android:id="@+id/activity_main_menu_listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/drawer_background"
android:cacheColorHint="#00000000" >
</ScrollView>
</LinearLayout>
<!-- Fragment Holder -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- This is where fragment will show up -->
<FrameLayout
android:id="@+id/fragment_master"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
</LinearLayout>
这是我的清单文件
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MasterActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
我加了
android:windowSoftInputMode="adjustPan"
添加到我的 activity 标签内的清单中,现在可以使用了。我以前从来没有这样做过,我想我的自定义布局以某种方式弄乱了键盘。
感谢@eee 的评论,它为我指明了正确的方向
尝试将 ScrollView
更改为 androidx.core.widget.NestedScrollView
这帮助我解决了问题
我的键盘有问题。当它消失时,它所占据的space保持空白,其余布局不调整
普通屏幕:
带键盘:
键盘已关闭:
我以前从未见过这个,所以我什至不知道从哪里开始看。这发生在 4.2.2 和 5.1
另一条重要信息是,这是一个包含所有内容的自定义 LinearLayout。也许与此有关。如有必要,我可以上传任何代码。
这是主布局文件shell。
<com.edgetechlabs.app_v2.MasterLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Menu (Drawer)-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:visibility="visible"
android:layout_height="match_parent"
android:orientation="vertical" >
<ScrollView
android:id="@+id/activity_main_menu_listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/drawer_background"
android:cacheColorHint="#00000000" >
</ScrollView>
</LinearLayout>
<!-- Fragment Holder -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- This is where fragment will show up -->
<FrameLayout
android:id="@+id/fragment_master"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
</LinearLayout>
这是我的清单文件
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MasterActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
我加了
android:windowSoftInputMode="adjustPan"
添加到我的 activity 标签内的清单中,现在可以使用了。我以前从来没有这样做过,我想我的自定义布局以某种方式弄乱了键盘。
感谢@eee 的评论,它为我指明了正确的方向
尝试将 ScrollView
更改为 androidx.core.widget.NestedScrollView
这帮助我解决了问题