如何在软键盘显示android时移动布局

cav*_*llo 84 android android-softkeyboard

EditTexts我的布局中有一个带有两个登录屏幕和一个登录按钮的登录屏幕.问题是,当我开始输入时,会显示软键盘并覆盖登录按钮.如何在键盘出现时向上或向上推动布局?

我不想使用a ScrollView,只想在不向下滚动的情况下实现它.拜托,建议我做一些方法.提前致谢.

jee*_*eet 60

设置windowSoftInputMode属性adjustPanadjustResize

<activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>
Run Code Online (Sandbox Code Playgroud)

  • 这没有开箱即用,但将其更改为`<activity android:windowSoftInputMode ="adjustResize"> </ activity>`让它正常工作. (30认同)
  • 我已经这样做但仍然没有变化 (17认同)
  • 该设置必须是下表中列出的值之一,或者是一个"state ..."值加上一个"adjust ..."值的组合.在任一组中设置多个值 - 例如多个"state ..."值 - 具有未定义的结果.https://developer.android.com/guide/topics/manifest/activity-element.html#wsoft (5认同)
  • 提及您使用的是哪个 Android 版本。有些答案在某些版本上可能完全没用。 (2认同)

小智 32

在与活动对应的android清单文件中尝试此操作.

<activity android:windowSoftInputMode="adjustPan"> </activity>
Run Code Online (Sandbox Code Playgroud)


Bob*_*obs 24

onCreate()方法中使用此代码:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Run Code Online (Sandbox Code Playgroud)

  • 这种方法,但使用“SOFT_INPUT_ADJUST_RESIZE”而不是ADJUST_PAN,对我有用 (2认同)

Bha*_*nki 16

只要

android:windowSoftInputMode="adjustResize"
Run Code Online (Sandbox Code Playgroud)

在Manifest文件中的活动标签中就可以了


Day*_*are 12

将此行放在manifest.xml中的活动声明时间中

<android:windowSoftInputMode="adjustPan">
Run Code Online (Sandbox Code Playgroud)


cav*_*llo 10

我通过了解设备上软键盘的状态以某种方式实现了这一点.我在显示键盘时将布局移动到y位置,并在未显示时移回原位.这很好,遵循这个指导方针.

  • 我可以在键盘显示时向上移动布局,但在键盘隐藏时无法移动到原来的位置,你可以帮助我. (2认同)

小智 8

android:fitsSystemWindows="true"
Run Code Online (Sandbox Code Playgroud)

在布局文件的主布局上添加属性

android:windowSoftInputMode="adjustResize"
Run Code Online (Sandbox Code Playgroud)

在Activty上的Manifest.xml文件中添加行

它对我来说是完美的工作.


小智 6

将它放在清单文件中的活动声明中 <activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>

或者如果您愿意,可以添加活动的onCreate()方法

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Run Code Online (Sandbox Code Playgroud)

  • 清单代码错误,这种方式行为未定义(您设置了两个冲突值,请参阅offdoc:https://developer.android.com/guide/topics/manifest/activity-element.html,`android:windowSoftInputMode` 说明)。@kiwicomb123,选择一个参数或者系统会为你选择(这个选择可以在另一台设备/API版本上改变) (2认同)