9

我最近遇到了这个问题,我想与您分享我的解决方案。

问题

  • 您有一个 ListView,每行都有一个编辑文本,如下所示:

主列表.xml

<ListView
    android:id="@+id/listViewServ"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"/>

行列表.xml

<TextView 
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="100dp"
        android:layout_height="wrap_content"  
        android:inputType="number"/>
  • 您正在使用 TABS:tabHost 或 TabActivity。(注意这一点非常重要)。
  • 当您单击任何列表项 EditText 时,焦点会立即移出并且您无法键入任何内容。但是键盘还在。但是您输入的任何内容都不会因为焦点丢失而出现。

现在,我将为您提供发布我自己的问题的解决方案。

4

1 回答 1

31

我已经看到一些解决方案正在使用:

android:descendantFocusability="beforeDescendants"

在布局中定义列表。

对我来说,这不是必需的。该问题已使用 android:windowSoftInputMode="adjustPan" 修复:

<activity
        android:name="mainActivity"
        android:windowSoftInputMode="adjustPan"
        android:label="@string/app_name" >
    </activity>

在 Manifest.xml 中。

但是您必须确保这行代码进入您定义 TabHost 或 TabActivity 的活动中!!!。

于 2013-06-08T20:54:04.227 回答