5

我有一个ListView作为EditTexts项目。

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

但是当键盘悬停在文本上并且我开始输入时,编辑文本框不再可见,它只会在第一次获得焦点时弹出。

编辑:我已经在 4.3 上对其进行了测试,它按预期工作,edittext 一直可见,但在 4.2.1/4.2.2 上它不起作用。

4

5 回答 5

7

在某些特定供应商的 android 固件上, Manifestandroid:windowSoftInputMode中的Activity标签设置将不起作用...

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

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

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

于 2013-11-08T15:14:05.213 回答
0

尝试通过不设置android:windowSoftInputMode或将其设置为android:windowSoftInputMode:stateUnspecified. 如果您的主题中没有定义任何状态,Android 将选择一个合适的状态。我有同样的问题,这就是解决方案。

于 2013-11-09T18:30:21.000 回答
0

我的问题是我已经为 values-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">

希望它可以帮助某人。

于 2015-02-03T07:20:47.757 回答
0

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

  • 检查所需的列表项当前是否可见(滚动到列表的可见部分)。
  • 如果它不可见,则将列表滚动到它(ListView.setSelectedItem(int position))。
  • 如果可见,则聚焦属于列表项 (View.requestFocus()) 的 EditText。

非常丑陋的解决方案,但确实有效。

于 2013-11-09T10:29:22.230 回答
-1

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

于 2013-11-05T10:16:30.437 回答