我有一个活动,EditText
顶部有一个搜索框 ( ),下面有一个 ListView。每当活动开始时,EditText 始终具有焦点并调出部分覆盖ListView
.
没有其他文本视图可以具有焦点。我希望 EditText 仅在用户触摸它并开始输入时才具有焦点。我尝试clearFocus()
输入onCreateView
,onViewCreated
或onCreated
,但没有运气。
我有一个活动,EditText
顶部有一个搜索框 ( ),下面有一个 ListView。每当活动开始时,EditText 始终具有焦点并调出部分覆盖ListView
.
没有其他文本视图可以具有焦点。我希望 EditText 仅在用户触摸它并开始输入时才具有焦点。我尝试clearFocus()
输入onCreateView
,onViewCreated
或onCreated
,但没有运气。
在您的父布局中设置下一个属性:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true" >
现在,当activity
这个布局开始时获得默认焦点。
我们也可以在运行时从子视图中移除焦点(例如在完成子编辑之后):
findViewById(R.id.mainLayout).requestFocus();
或者
查看 AndroidManifest.xml 元素。
android:windowSoftInputMode="stateHidden"
进入活动时它总是隐藏键盘。
您可以在容器视图上使用 set focus。添加到容器android:focusableInTouchMode="true"、android:focusable="true"和标签requestFocus示例:
<RelativeLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusableInTouchMode="true"
android:focusable="true">
<requestFocus/>
<EditText
android:id="@+id/edit_text_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
你必须<requestFocus>
在你的 XML 中提到标签editTiext field
删除它并再次运行
你可以试试这个:
editText.clearFocus();
您想在哪里清晰焦点。
在 EditText 的父布局中添加 android:focusable="true" 和 android:focusableInTouchMode="true" 元素,如下所示;
android:id="@+id/linearLayout7" android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="true" android:focusableInTouchMode="true">
我想,它应该对你有所帮助。
这是EditText的答案,明确关注外部触摸。
或者您可以只编写小部件,它仅显示带有 textView 的文本,并onClick
显示对话框EditText
,您可以在其中编辑此文本/
试试这个
在您的Activity
声明中AndroidManifest.xml
添加以下代码:
android:windowSoftInputMode="stateHidden"
当活动可见时,它将防止键盘弹出。
快乐编码:)
这将完成您的工作:
android:windowSoftInputMode="stateHidden"