【问题标题】:android resize layout when keyboard appearsandroid在键盘出现时调整布局
【发布时间】:2012-07-10 15:03:39
【问题描述】:

我想在键盘出现时重新定位布局,例如在编辑文本字段时,以便获得焦点字段的可见性。我尝试了 windowSoftInputMode 但我没有任何区别。如何到达?谢谢。

<activity 
            android:name="com.xxxx.projecte1.TabBar_Activity"      
            android:theme="@android:style/Theme.NoTitleBar"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:windowSoftInputMode="adjustResize"
           />

【问题讨论】:

标签: java android


【解决方案1】:
   <activity
        android:name=".WActivity"
        android:configChanges="orientation|keyboard|keyboardHidden|screenSize|screenLayout|uiMode"
        android:icon="@drawable/navigation_two"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/appTheme"
        android:windowSoftInputMode="adjustResize" />

【讨论】:

  • android:windowSoftInputMode="adjustResize" 为我工作
  • 非常感谢 android:windowSoftInputMode="adjustResize"
【解决方案2】:

对于可能有类似问题的其他人:

在我的情况下解决它的方法就是放

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

进入我的活动的onCreate 方法。

没有任何 xml 更改,因为这些对我没有任何作用,但这就像一个魅力一样立即起作用。虽然 xml 解决方案对我来说似乎更好,但即使是相同的参数也不起作用。

分享它,因为我没有在网上找到快速简便的修复方法。

【讨论】:

  • 谢谢。事实证明,如果您使用标志 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 修改 systemUiVisibility,您应该使用 setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) 来设置标志adjustResize。不要忘记在根布局上设置 android:fitsSystemWindows="true" (如果您使用的是滚动视图)。
  • SOFT_INPUT_ADJUST_RESIZE 已弃用
【解决方案3】:

我相信问题出在这条线

android:configChanges="keyboardHidden|orientation|screenSize"

在您的代码中。这一行告诉Android 你的Activity 将自己处理这3 个事件。如果你去掉这条线,我相信你会得到想要的效果。

有关configChanges 属性,请参阅here

【讨论】:

  • @Jaume 查看之前的 SO 帖子:link。希望它有所帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-09
  • 1970-01-01
相关资源
最近更新 更多