Android 输入法在页面中显示方式位置变化

来源:互联网 发布:js判断对象包含属性 编辑:程序博客网 时间:2024/05/26 12:05

近期做项目的时候,使用TabHostFragment类以便做导航页签,但在子Fragment里需要输入文字,这就导致在显示输入法时候,tab页签会上移,而需求却是隐藏掉页签。

系统提供了在清单文件里通过设置当前activity的一个属性android:windowSoftInputMode来控制输入法的显示方式。

在一般情况下,使用adjustResize属性,这种情况,页签会上移,底部view会被隐藏,以便给需要输入文本的view挪空间

使用adjustPan属性,这种情况,页签会上移,中间view会被隐藏,以便给需要输入文本的view挪空间

而项目中的需求,恰是不对View做任何改变,便可以将页签被输入框隐藏掉,便可以使用adjustNothing属性。


下面是对android:windowSoftInputMode部分属性的值的描述

值描述”stateUnSpecified“不指定软件的状态(显示或隐藏)。系统会根据主题中的设置来选择相应的状态。 该属性软键盘的默认设置。”stateUnchnaged“总是保持上次软键盘的状态。当Activity进入到最前端时,不论是它上次它是显示或隐藏,保持不变。”stateHidden“当用户进入目标Activity时,软键盘保持隐藏状态。这里的Activity是用户是向前进入Activity,而不是由于退出其它Activity退回到目标Activity。”stateVisible“只有条件合适(当用户前进进入到Activity的主window),就会显示键盘”stateAlawaysVisible“当用户选择进入目标Activity时,软键盘被设置为可见的。这里的Activity是用户向前进入的Activity,而不是由于退出其它Activity而回到目标Activity"adjustUnspecified"不指定是否去调整Activity的界面。或者调整Activity窗口的大小以便为软键盘腾出空间或者移动窗口的内容来屏幕上当前的焦点可见。系统会自动选择其中一种模式,这依赖于窗口是包含可以滑动其内容的view.如有这样的视图,窗口的大小就会被调整。在这样的假定的情况下,很小的滑动就可以使用窗口的内容可见。 该属性是主windowr默认设置。”adjustResize“Activity的窗口总是被调整其大小以便为软键盘腾出空间。”adjustPan“Activity的主窗口不会被调整其大小以便为软键盘腾出空间。相反,窗口的内容会被自动移动以便当前的焦点不会被软键盘遮住,用户可以总是看到他输入的内容。这个值一般用于用户很少想调整窗口的大小的情况下,因为用户可能需要关闭软键盘来与窗口的其它部分进行交互。
0 0
原创粉丝点击