我有一个TabActivity,其中的标签横跨屏幕的底部。我的第一个标签包含一个活动,该活动由屏幕顶部的固定标题布局和包含多个EditText控件的ScrollView组成。 ScrollView在标题栏和底部标签之间滚动内容,当点击EditText并出现软键盘时会出现问题。我理解在键盘出现时控制视图的行为我需要使用清单XML文件中的windowSoftInputMode
属性。但是我尝试了以下两种设置:
adjustResize
- 为ScrollView提供正确的功能,标题布局保持固定在屏幕顶部。但是,标签栏控件被向上推到键盘顶部。
adjustPan
- 标签栏控件保留在键盘下方的屏幕底部(这就是我想要的),但其他视图被键盘向上推,这意味着标题布局被推离屏幕
我似乎需要两种设置的特性,但它们不能一起使用。我听说过设置adjustNothing
,但如果我尝试这个,我的项目无法构建,因为它无法识别此设置。我想我需要我的标签主机活动adjustPan
,但我的内容活动有adjustResize
,但似乎你无法将两者结合起来,因为它是优先的标签主机活动。
非常感谢任何帮助。
答案 0 :(得分:0)
在没有任何直接解决方案的情况下,我采取了一种黑客行为。我已将我的TabHost活动设置为adjustResize
,然后编写代码以在软键盘出现/消失时隐藏/取消隐藏标签栏控件(TabWidget)。最后,我设法得到了一个非常好的结果,使用了这里的技术:Adjust layout when soft keyboard is on来检测出现/消失的键盘。