2011-01-05 51 views
8

我有这样一个活动的布局结构: 的LinearLayout - >滚动型 - > TableLayout机器人:windowSoftInputMode =“adjustResize”时,我已经有滚动型的活动

下面的TableLayout我有EditText上,这是我想要在键盘处于活动状态时向上滚动。 所以根据一些阅读我做了,我说:

android:windowSoftInputMode="adjustResize" 

到AndroidManifest.xml中,对相关活动,并且加入了滚动型包装器activity.xml文件,因此该活动的布局结构现在是如下: 滚动型 - >的LinearLayout - >滚动型 - > TableLayout

问题:内滚动型现在没有工作......我想触摸时包装滚动型正在控制...

我该如何解决这个问题?

任何帮助将不胜感激。 谢谢。

+0

尽量避免scrollview在另一个滚动视图中的某处。你可以捕捉它,但这不是必需的。我得到了一些问题。但是linearlayout> scrollview> tablelayout足以解决您的问题。内部滚动视图会自动调整到正确的大小。我也会推荐添加“stateVisible”到inputMode选项 – 2011-01-05 14:47:24

+1

但是,如果我不用ScrollView包装整个Activity,那么当edittext点击时Activity不会被调整大小......或者我错了吗?我试过没有它,活动没有滚动与键盘 - 键盘刚刚覆盖EditText,再次... – ofirbt 2011-01-10 13:33:21

回答

10

我正面临同样的问题,虚拟键盘在屏幕上隐藏了EditTexts。 我介绍了活动标记的下列财产清单文件:

android:windowSoftInputMode="stateVisible|adjustResize|adjustPan" 

而且我需要在活动的OnCreate函数中添加以下代码:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

这解决了这个问题,它的工作完全正常在所有分辨率模拟器和三星设备上。尽管如此,它确实在Google Nexus S设备上失败,我仍然可以看到隐藏EditTexts的虚拟键盘的相同问题。

+11

这至少有点错了。根据[windowSoftInputMode的文档](http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft),你不能设置多个'adjust'参数(并且它不会无论如何感觉)。 – Timmmm 2012-09-26 09:19:49

+2

该文档没有说你不能设置多个值,只是结果是未定义的,所以这有点破解。 – fejd 2013-03-08 10:10:20

+0

经过几个小时的搜索解决了我的'EditText'输入滞后问题(最多延迟5秒)。谢谢。 – 2016-07-19 20:58:22