我使用非常复杂的子项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)。
我该怎样防止这种情况?我想在EditTexts中写文本。
答案 0 :(得分:16)
需要两个设置:
在UI代码中:
expListView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
在活动的AndroidManifest.xml中:
<activity android:name=".InfoActivity" android:windowSoftInputMode="adjustPan">