需要防止我的 AutoCompleteTextView 在 Activity 开始时获得焦点
Need to prevent my AutoCompleteTextView from gaining focus at the start of Activity
我的 XML 文件中有一个 AutoCompleteTextView:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.android.aashima.premiumpoint.PremiumPoint">
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/searchByName"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:padding="10dp"
android:background="#ddd"
android:hint="Search By Name"
android:textColorHint="#fff"
android:gravity="center"
android:layout_alignTop="@+id/searchImageButton"
android:layout_alignBottom="@+id/searchImageButton"
android:layout_toLeftOf="@+id/searchImageButton"
android:textColor="#fff"
android:completionThreshold="1"
android:imeOptions="actionDone"
android:dropDownWidth="fill_parent"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/searchImageButton"
android:src="@drawable/search40"
android:layout_alignParentRight="true"
android:padding="2dp"
android:background="@color/material_blue_grey_950"/>
</RelativeLayout>
我不希望它在我的 Activity 启动时获得焦点。
我尝试将以下内容提供给父布局:
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
在我的 AutoCompleteTextView 上方提供一个虚拟项目:
<!-- Dummy item to prevent AutoCompleteTextView from receiving focus -->
<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px"/>
和设置:
android:nextFocusUp="@id/searchByName"
android:nextFocusLeft="@id/searchByName"
到 AutoCompleteTextView 。
在搜索时我发现类似于以下的结果:
android:windowSoftInputMode="stateHidden"
android:windowSoftInputMode="stateUnchanged"
但我想要的是防止它获得焦点并且不隐藏键盘不出现。
我尝试了很多替代方法,但都没有成功。我在这里做错了什么吗?
提前致谢。
编辑:
还尝试过:
clearFocus();
requestFocus();
尝试将您的两种方法组合如下:
<!-- Dummy item to prevent AutoCompleteTextView from receiving focus -->
<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px"/>
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/searchByName"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:padding="10dp"
android:background="#ddd"
android:hint="Search By Name"
android:textColorHint="#fff"
android:gravity="center"
android:layout_alignTop="@+id/searchImageButton"
android:layout_alignBottom="@+id/searchImageButton"
android:layout_toLeftOf="@+id/searchImageButton"
android:textColor="#fff"
android:completionThreshold="1"
android:imeOptions="actionDone"
android:dropDownWidth="fill_parent"
android:nextFocusUp="@id/searchByName"
android:nextFocusLeft="@id/searchByName"/>
现在,将虚拟视图和您的 AutoCompleteTextView 引入您的 java 代码并使用:
dummy.requestFocus();
search.clearFocus();
反之亦然。
我的 XML 文件中有一个 AutoCompleteTextView:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.android.aashima.premiumpoint.PremiumPoint">
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/searchByName"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:padding="10dp"
android:background="#ddd"
android:hint="Search By Name"
android:textColorHint="#fff"
android:gravity="center"
android:layout_alignTop="@+id/searchImageButton"
android:layout_alignBottom="@+id/searchImageButton"
android:layout_toLeftOf="@+id/searchImageButton"
android:textColor="#fff"
android:completionThreshold="1"
android:imeOptions="actionDone"
android:dropDownWidth="fill_parent"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/searchImageButton"
android:src="@drawable/search40"
android:layout_alignParentRight="true"
android:padding="2dp"
android:background="@color/material_blue_grey_950"/>
</RelativeLayout>
我不希望它在我的 Activity 启动时获得焦点。
我尝试将以下内容提供给父布局:
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
在我的 AutoCompleteTextView 上方提供一个虚拟项目:
<!-- Dummy item to prevent AutoCompleteTextView from receiving focus -->
<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px"/>
和设置:
android:nextFocusUp="@id/searchByName"
android:nextFocusLeft="@id/searchByName"
到 AutoCompleteTextView 。
在搜索时我发现类似于以下的结果:
android:windowSoftInputMode="stateHidden"
android:windowSoftInputMode="stateUnchanged"
但我想要的是防止它获得焦点并且不隐藏键盘不出现。
我尝试了很多替代方法,但都没有成功。我在这里做错了什么吗? 提前致谢。
编辑: 还尝试过:
clearFocus();
requestFocus();
尝试将您的两种方法组合如下:
<!-- Dummy item to prevent AutoCompleteTextView from receiving focus -->
<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px"/>
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/searchByName"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:padding="10dp"
android:background="#ddd"
android:hint="Search By Name"
android:textColorHint="#fff"
android:gravity="center"
android:layout_alignTop="@+id/searchImageButton"
android:layout_alignBottom="@+id/searchImageButton"
android:layout_toLeftOf="@+id/searchImageButton"
android:textColor="#fff"
android:completionThreshold="1"
android:imeOptions="actionDone"
android:dropDownWidth="fill_parent"
android:nextFocusUp="@id/searchByName"
android:nextFocusLeft="@id/searchByName"/>
现在,将虚拟视图和您的 AutoCompleteTextView 引入您的 java 代码并使用:
dummy.requestFocus();
search.clearFocus();
反之亦然。