DialogFragment包含带有EditText-focus的ListView,不会弹出键盘

时间:2014-11-08 15:34:37

标签: android android-layout

我很难理解我发现的独特行为。 我有一个只有ListView的布局,其中的项目布局是一些文本& EDITTEXT。 在屏幕上显示这样的对话会导致意外行为 - 键盘在对焦时不会弹出。 我奇怪地发现,如果我在对话框的布局中添加另一个元素,问题就解决了。

对话框布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/listView"

        />


    <!-- patch. otherwise, EditText within listview wont pop keyboard. weird, right? -->
    <EditText
        android:layout_width="wrap_content"
        android:visibility="gone"
        android:layout_height="wrap_content" />
</LinearLayout> 

项目布局:

..
...
....
     <EditText
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:inputType="number"
     android:ems="5"
     android:maxEms="5"
     android:editable="true"
     android:numeric="integer"
     android:id="@+id/purchaseAmount" />
....
...
..

有人可以解释一下这种行为吗?

1 个答案:

答案 0 :(得分:0)

也许ListView没有焦点。您可以通过稍微修改xml来确保这一点。

<ListView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/listView">
    <requestFocus/>
</ListView>