调整pan | adjust resize似乎不适用于JellyBean 4.2.2-4.1.2

时间:2013-10-31 10:41:41

标签: android android-listview android-edittext

我有ListView EditTexts作为项目。

我尝试同时设置android:windowSoftInputMode="adjustPan""adjustResize" 清单中的标志,我也尝试添加“始终可见”标志,它也没有帮助。

但是当键盘盘旋在文本上并且我开始输入编辑文本框时,没有看到孤独的,它只会在第一次获得焦点时弹出。

编辑: 我已经在4.3上测试了它并且它可以正常工作,编辑文本一直可见,但是在4.2.1 / 4.2.2上它不起作用。

5 个答案:

答案 0 :(得分:7)

对于某些特定供应商的Android固件,Manifest中android:windowSoftInputMode标记的设置Activity将无效...

可能的解决方法是在设置内容视图后,可以在onCreate()方法内直接从java代码设置它:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

这是一个很长的镜头,但对我来说,它在某些情况下有效......

答案 1 :(得分:0)

昨天我遇到了同样的问题。以这种方式解决了它: 当用户单击EditText时,我启动一个计时器,持续保持列表项可见并聚焦。每次点击后运行1.5秒。 我有一个Runnable,它会定期将自己发布给处理程序。

  • 检查当前是否显示所需的列表项目(滚动到 清单的可见部分)。
  • 如果看不到,请将列表滚动到该列表 (ListView.setSelectedItem(int position))。
  • 如果可见,请关注 属于列表项的EditText(View.requestFocus())。

非常丑陋的解决方案,但是做到了。

答案 2 :(得分:0)

尝试使用Android默认值,不设置android:windowSoftInputMode或将其设置为android:windowSoftInputMode:stateUnspecified。如果您的主题中没有定义任何人,Android将选择适当的状态。我有同样的问题,这就是解决方案。

答案 3 :(得分:0)

我的问题是我在我的风格上指定了值-v19

<item name="android:fitsSystemWindows">false</item>

不允许窗口调整大小。因此,要么将其更改为true,要么在要调整大小的布局中添加以下内容:

<LinearLayout
android:fitsSystemWindows="true" //this line!
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

希望它有所帮助。

答案 4 :(得分:-1)

AndroidManifest.xml上,尝试在包含列表视图的活动中添加android:windowSoftInputMode="adjustPan"