android:windowSoftInputMode ="adjustResize",当我在活动中已经有ScrollView时

ofi*_*rbt 9 android-layout

我有一个具有此Layouts结构的活动:LinearLayout - > ScrollView - > TableLayout

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

android:windowSoftInputMode="adjustResize"
Run Code Online (Sandbox Code Playgroud)

到AndroidManifest.xml,到相关活动,并将一个ScrollView包装器添加到activity.xml文件中,因此活动的Layouts结构现在如下所示:ScrollView - > LinearLayout - > ScrollView - > TableLayout

问题:内部ScrollView现在不能正常工作...我想包裹ScrollView在触摸时会控制...

我该如何解决这个问题?

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

Zeb*_*eba 10

我遇到了同样的问题,虚拟键盘在我的屏幕上隐藏了EditTexts.我在清单文件中为activity标记引入了以下属性:

 android:windowSoftInputMode="stateVisible|adjustResize|adjustPan"
Run Code Online (Sandbox Code Playgroud)

我还需要在activity的OnCreate函数中添加以下代码:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)

这解决了这个问题,它在所有分辨率模拟器和三星设备上都能很好地工作.但是,它在Google Nexus S设备上确实失败了,我可以再次看到虚拟键盘隐藏EditTexts的同样问题.

  • 这至少有点不对劲.根据[windowSoftInputMode的文档](http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft),您无法设置多个`adjust`参数(并且它不会无论如何感觉). (11认同)
  • 文档没有说你不能设置多个值,只是结果是未定义的,所以它有点像黑客. (2认同)