可扩展列表视图的子项EditText无法保持焦点

4
我创建了一个具有相当复杂子项xml的ExpandableListView。它包含一个TextView,一个Checkbox和一个EditText。以下是其中的一部分:
 <TableLayout
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:orientation="horizontal"
               android:stretchColumns="1">
    <TableRow>
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      >
      <TextView
          android:id="@+id/lblData1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textSize="14dip"
          android:paddingTop="2dp"
          android:layout_marginLeft="4dp"
          android:text="@string/lblTitle1"
          android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft"/>
      <EditText android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:selectAllOnFocus="true">

      </EditText>
    </TableRow>
  </TableLayout>
  • 列表视图很好地显示了列表,我可以看到我的子项及其对应的小部件,但当我点击EditText时,它会瞬间显示键盘并且焦点转移到下一个子项并隐藏键盘(焦点丢失,不是移动到下一个EditText)。
  • 我该如何防止这种情况发生?我想在EditText中输入文本。
1个回答

18

需要两个设置:

  • 在UI代码中:

    expListView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);

  • 在AndroidManifest.xml文件中的Activity中:

    <activity android:name=".InfoActivity" android:windowSoftInputMode="adjustPan">


1
也可以使用XML完成:android:descendantFocusability="afterDescendants"......我花了几个小时的时间搜索才找到这个答案。谢谢@Nestor - Shirish Hirekodi
@ShirishHirekodi 很高兴能够帮到你 :) - Nestor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接