ListView中的EditText失去了焦点

kid*_*uxa 9 android android-listview android-edittext

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

问题:

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

MainList.xml

<ListView
    android:id="@+id/listViewServ"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"/>
Run Code Online (Sandbox Code Playgroud)

RowList.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"/>
Run Code Online (Sandbox Code Playgroud)
  • 您正在使用TABS:tabHost或TabActivity.(这一点非常重要).
  • 当您单击任何列表项EditText时,焦点会立即移出,您无法键入任何内容.然而键盘仍然打开.但是你输入的东西并没有出现,因为焦点丢失了.

现在,我将给你解决方案,发布我自己的问题.

kid*_*uxa 31

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

android:descendantFocusability="beforeDescendants"
Run Code Online (Sandbox Code Playgroud)

在列表定义的布局中.

对我来说这没有必要.问题是使用android修复:windowSoftInputMode ="adjustPan":

<activity
        android:name="mainActivity"
        android:windowSoftInputMode="adjustPan"
        android:label="@string/app_name" >
    </activity>
Run Code Online (Sandbox Code Playgroud)

在Manifest.xml中.

但你必须确保该行的代码放在活动,你所定义的TabHost或TabActivity !!!

  • 如果屏幕底部附近有一个"EditText",即使尝试在其中输入文本,也会导致它被键盘遮挡. (12认同)