单击同级时将焦点重定向到 EditText
Redirect focus on EditText when sibling is clicked
我希望我的 EditText 在其兄弟或父级被触摸(单击)时获得焦点。
是否可以通过 XML 或编程方式实现?
我已经尝试在容器 (LinearLayout) 和兄弟 (AppCompatTextView) 上设置以下属性
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:gravity="left" />
<androidx.appcompat.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:inputType="textCapSentences" />
</LinearLayout>
单击同级视图时,您可以通过调用 - editText.requestFocus()
简单地请求关注您的编辑文本
是的,有可能,
您需要在兄弟视图上设置 onClickListener
在那个 onClickListener 调用中 editText.requestFocus();
如下图
siblingView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.requestFocus();
}
});
要使用 XML 执行此操作,您可以在代码中添加以下内容
<EditText
android:id="@+id/editText"
android:layout_width="411dp"
android:layout_height="51dp">
<requestFocus/>
</EditText>
我希望我的 EditText 在其兄弟或父级被触摸(单击)时获得焦点。
是否可以通过 XML 或编程方式实现?
我已经尝试在容器 (LinearLayout) 和兄弟 (AppCompatTextView) 上设置以下属性
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:gravity="left" />
<androidx.appcompat.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:inputType="textCapSentences" />
</LinearLayout>
单击同级视图时,您可以通过调用 - editText.requestFocus()
是的,有可能,
您需要在兄弟视图上设置 onClickListener
在那个 onClickListener 调用中 editText.requestFocus();
如下图
siblingView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.requestFocus();
}
});
要使用 XML 执行此操作,您可以在代码中添加以下内容
<EditText
android:id="@+id/editText"
android:layout_width="411dp"
android:layout_height="51dp">
<requestFocus/>
</EditText>