Activity fullScreen Theme样式导致输入法显示问题。
来源:互联网 发布:淘宝卖家怎么报名双11 编辑:程序博客网 时间:2024/06/06 07:23
问题表象:

今天在移植部分代码时,出现了输入法的menu栏不显示的问题。如上图图二。
细心观察会有3处不同:
- 输入法栏显示不全
- actionBar的头部不显示问题。
- 图1ListView没有滚动,图2整体向上滚动
问题原因
activity配置如下
<activity android:name="***.PostDetailActivity" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar.FullScreen" android:windowSoftInputMode="stateAlwaysHidden|adjustResize"> </activity>
layout 配置文件结构如下:

代码移植后,layout配置文件未做大的修改,代码Activity,fragment也未做输入法相关的改动。
细心翻看代码提交记录,还有点点经验,感觉可能是manifest配置文件的问题,于是做了比较,果然android:theme
不同。怀疑是这个原因导致的。
由于使用了android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
和adjustResize
,fullScreen
属性导致adjustResize
参数不起作用。
深挖 问题原因
请看文档:
https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_FULLSCREEN
FLAG_FULLSCREEN
added in API level 1
int FLAG_FULLSCREEN
Window flag: hide all screen decorations (such as the status bar) while this window is displayed. This allows the window to use the entire display space for itself -- the status bar will be hidden when an app window with this flag set is on the top layer. A fullscreen window will ignore a value of SOFT_INPUT_ADJUST_RESIZE for the window's softInputMode field; the window will stay fullscreen and will not resize.
This flag can be controlled in your theme through the windowFullscreen attribute; this attribute is automatically set for you in the standard fullscreen themes such as Theme_NoTitleBar_Fullscreen, Theme_Black_NoTitleBar_Fullscreen, Theme_Light_NoTitleBar_Fullscreen, Theme_Holo_NoActionBar_Fullscreen, Theme_Holo_Light_NoActionBar_Fullscreen, Theme_DeviceDefault_NoActionBar_Fullscreen, and Theme_DeviceDefault_Light_NoActionBar_Fullscreen.
意思就是使用FullScreen后,SOFT_INPUT_ADJUST_RESIZE
将不在起作用。
若你必须使用FullScreen,可以参考下面给出的解决方案:
http://stackoverflow.com/a/30019136/325479
这里也有这个问题的很多讨论:
https://code.google.com/p/android/issues/detail?id=5497&q=fullscreen&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars
参考
- http://stackoverflow.com/questions/7417123/android-how-to-adjust-layout-in-full-screen-mode-when-softkeyboard-is-visible/19494006#19494006
- 这里也有这个问题的很多讨论:https://code.google.com/p/android/issues/detail?id=5497&q=fullscreen&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars
- Activity fullScreen Theme样式导致输入法显示问题。
- Android 设置activity主题Theme.NoTitleBar.Fullscreen 打开报错的问题
- android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen"相关问题
- Activity样式android:theme=“*”
- dialog样式的activity显示问题。
- Android改Activity样式(theme)
- Activity设置Theme为Dialog样式
- 安卓开发中将activity设成translucent导致输入法遮挡edittext,windowSoftInputMode设置无效问题
- Fullscreen API全屏显示
- Activity不显示出来,发现是theme设置的有问题
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- Activity使用Dialog样式导致点击空白处自动关闭的问题
- C#操作PDF总结
- Genymotion模拟器在Android Studio中检查不到
- 24:鸣人的影分身
- 流
- 最长公共字符串
- Activity fullScreen Theme样式导致输入法显示问题。
- 基于linux的socket编程实现ftp客户端
- 题目1088:剩下的树
- Java内存模型浅析
- 斗鱼直播与熊猫直播竞品分析
- 用链表实现堆栈
- Java编程思想-05初始化与清理
- 生产者消费者代码
- 题目1089:数字反转