Android 软键盘推送浏览量
Android soft keyboard pushing views
我正在为 android 开发一个软键盘,我遇到了一个我无法解决的问题。问题是,当我打开键盘时,它会错误地移动其他视图(见图片,我的键盘在左边)。
我尝试了在 Whosebug 或其他地方找到的多种解决方案,但它们对我不起作用。
我试过:
android:windowSoftInputMode="adjustResize"
android:windowSoftInputMode="stateHidden|adjustPan"
android:windowSoftInputMode="adjustResize|stateVisible|stateAlwaysHidden"
但它并没有改变您在屏幕截图中看到的行为。
所以,请帮我解决这个问题。
Ps。我知道有很多类似的问题提供 "adjustResize"
或 "stateHidden|adjustPan"
,但它对我不起作用。
P.p.s 截图是在 android 6.0.1.
谢谢。
您只需将 activity 的 windowSoftInputMode 标志切换为“adjustPan”。移除 adjustResize.
<activity
...
android:windowSoftInputMode="adjustPan">
</activity>
尝试用 scrollView 包裹你的布局
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
.
.
.
.
</ScrollView>
我终于找到了 answer 我的问题。您需要在扩展 InputMethodService
的 class 中使用此代码:
@Override
public void onComputeInsets(InputMethodService.Insets outInsets) {
super.onComputeInsets(outInsets);
if (!isFullscreenMode()) {
outInsets.contentTopInsets = outInsets.visibleTopInsets;
}
}
我认为 android:windowSoftInputMode 可以工作,但是像这样:
android:windowSoftInputMode="adjustNothing"
试试吧。
我正在为 android 开发一个软键盘,我遇到了一个我无法解决的问题。问题是,当我打开键盘时,它会错误地移动其他视图(见图片,我的键盘在左边)。
我尝试了在 Whosebug 或其他地方找到的多种解决方案,但它们对我不起作用。
我试过:
android:windowSoftInputMode="adjustResize"
android:windowSoftInputMode="stateHidden|adjustPan"
android:windowSoftInputMode="adjustResize|stateVisible|stateAlwaysHidden"
但它并没有改变您在屏幕截图中看到的行为。
所以,请帮我解决这个问题。
Ps。我知道有很多类似的问题提供 "adjustResize"
或 "stateHidden|adjustPan"
,但它对我不起作用。
P.p.s 截图是在 android 6.0.1.
谢谢。
您只需将 activity 的 windowSoftInputMode 标志切换为“adjustPan”。移除 adjustResize.
<activity
...
android:windowSoftInputMode="adjustPan">
</activity>
尝试用 scrollView 包裹你的布局
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
.
.
.
.
</ScrollView>
我终于找到了 answer 我的问题。您需要在扩展 InputMethodService
的 class 中使用此代码:
@Override
public void onComputeInsets(InputMethodService.Insets outInsets) {
super.onComputeInsets(outInsets);
if (!isFullscreenMode()) {
outInsets.contentTopInsets = outInsets.visibleTopInsets;
}
}
我认为 android:windowSoftInputMode 可以工作,但是像这样:
android:windowSoftInputMode="adjustNothing"
试试吧。