我的应用程序中有一些设置页面。一旦活动直接开始,它就会集中到编辑文本,我使用以下代码来清除焦点。
<RelativeLayout
android:id="@+id/RequestFocusLayout"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px"/>
并在java代码中
RelativeLayout focuslayout = (RelativeLayout) findViewById(R.id.RequestFocusLayout);
focuslayout.requestFocus();
当 Activity 第一次启动时,上面的代码工作正常,如果同一 Activity 再次启动,则自动 edittext 获得焦点。
谁能帮我解决这个问题。
事实上,活动中的第一个可聚焦视图获得初始焦点。如果那恰好是你的EditText
,它将首先集中。
如果您不希望这样,您有以下选择:
Focus another view
以编程方式确定您想要首先关注哪个视图。
@Override
protected void onStart() {
super.onStart();
findViewById( R.id.yourOtherViewId ).requestFocus();
}
Make an 较早的观点在你的布局中可聚焦的
如果您希望看起来“没有视图具有初始焦点”,您可以使父视图组可聚焦。在下面的例子中,我将我的LinearLayout
可通过设置对焦android:focusableInTouchMode="true"
:
<LinearLayout
android:focusableInTouchMode="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<EditText
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)