我正在尝试创建一个布局,该布局由一个父 LinearLayout、一个包含标签 TextView 和错误 TextView 的子相对布局以及另一个子 EditText 组成。
当单击父 LinearLayout 或标签时,我希望聚焦子 EditText。到目前为止,我已经尝试了以下方法:
- 父布局中的android:labelFor="@+id/account_number_input"
- 将 android:duplicateParentState="true"添加到 EditText 并使父 LinearLayout 可聚焦和可点击
- 还在可聚焦的情况下在父 LinearLayout 上尝试了 android:descendantFocusability="afterDescendants"。
似乎没有什么能达到预期的效果。
以上是示例代码。我有多个类似的项目,它们都需要自定义标签和错误部分。
<LinearLayout
android:id="@+id/account_number_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
style="@style/EditTextLinearLayout">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/account_number_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add_account_number_label"
android:labelFor="@+id/username_input"
android:layout_alignParentStart="true"
android:layout_toStartOf="@+id/account_number_error"
style="@style/EditTextLabel"/>
<TextView
android:id="@+id/account_number_error"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/account_number_label"
android:layout_alignParentEnd="true"
style="@style/EditTextError"/>
</RelativeLayout>
<EditText
android:id="@+id/account_number_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/add_account_number_hint"
style="@style/EditTextInput"/>
</LinearLayout>
最佳答案
您可以尝试在需要关注 onClick()
事件的 View 上调用 requestFocus()
。
例如:
findViewById(R.id.yourParentViewId).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.requestFocus();
}
});
关于android - 将焦点或点击传递给子 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48119456/