Android - 在TabActivity和windowSoftInputMode中托管的ScrollView活动

时间:2013-10-16 13:34:55

标签: android android-layout scrollview android-softkeyboard tabactivity

我有一个TabActivity,其中的标签横跨屏幕的底部。我的第一个标签包含一个活动,该活动由屏幕顶部的固定标题布局和包含多个EditText控件的ScrollView组成。 ScrollView在标题栏和底部标签之间滚动内容,当点击EditText并出现软键盘时会出现问题。我理解在键盘出现时控制视图的行为我需要使用清单XML文件中的windowSoftInputMode属性。但是我尝试了以下两种设置:

adjustResize - 为ScrollView提供正确的功能,标题布局保持固定在屏幕顶部。但是,标签栏控件被向上推到键盘顶部。

adjustPan - 标签栏控件保留在键盘下方的屏幕底部(这就是我想要的),但其他视图被键盘向上推,这意味着标题布局被推离屏幕

我似乎需要两种设置的特性,但它们不能一起使用。我听说过设置adjustNothing,但如果我尝试这个,我的项目无法构建,因为它无法识别此设置。我想我需要我的标签主机活动adjustPan,但我的内容活动有adjustResize,但似乎你无法将两者结合起来,因为它是优先的标签主机活动。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

在没有任何直接解决方案的情况下,我采取了一种黑客行为。我已将我的TabHost活动设置为adjustResize,然后编写代码以在软键盘出现/消失时隐藏/取消隐藏标签栏控件(TabWidget)。最后,我设法得到了一个非常好的结果,使用了这里的技术:Adjust layout when soft keyboard is on来检测出现/消失的键盘。