我有以下布局:
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="*">
<TableRow
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:descendantFocusability="beforeDescendants">
<TextView
android:text="Login:"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/password"
android:background="@null"
android:duplicateParentState="true"
android:inputType="text"
android:maxLines="1"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</TableRow>
</TableLayout>
我的EditText
占用屏幕宽度的一半,我希望它在点击TableRow
时获得焦点。我该如何设置呢?没有任何额外的代码可以吗?
答案 0 :(得分:1)
我最终实现了一个监听器。我改变了布局:
<TableRow
android:onClick="focusChildEditText">
...
<EditText
...
android:tag="focusable"/>
</TableRow>
并使用以下监听器:
public void focusChildEditText(View view) {
try {
EditText editText=((EditText) ((ViewGroup) view).findViewWithTag("focusable"));
if (editText!=null)
editText.requestFocus();
} catch (ClassCastException e) {}
}
一切都按照我的需要运作。