Как очистить фокус для EditText?
У меня есть активность с EditText
поиска (EditText
) в верхней части и ListView ниже. Всякий раз, когда начинается действие, EditText всегда имеет фокус и вызывает клавиатуру, которая частично покрывает ListView
.
Там нет другого текстового представления, которое может иметь фокус. Я хочу, чтобы EditText имел фокус ТОЛЬКО, когда пользователь касается его и начинает печатать. Я пытаюсь поставить clearFocus()
в onCreateView
, onViewCreated
или onCreated
, но onCreated
.
Ответы
Ответ 1
Установите в родительском макете следующие атрибуты:
<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"
Он всегда скрывает клавиатуру при вводе активности.
Ответ 2
вы должны были упомянуть тег <requestFocus>
в вашем editTiext field
в XML, удалить и снова запустить
Ответ 3
Вы можете использовать функцию set focus для просмотра контейнера. Добавить в контейнер android: focusableInTouchMode = "true" , андроид: 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>
Ответ 4
Добавьте элементы android: focusable = "true" и android: focusableInTouchMode = "true" в родительском расположении EditText следующим образом:
android:id="@+id/linearLayout7" android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="true" android:focusableInTouchMode="true">
Я думаю, это должно помочь вам.
Ответ 5
Вы можете попробовать следующее:
editText.clearFocus();
когда вы хотите очистить фокус.
Ответ 6
Вот ответ EditText, ясный фокус на касании вне.
Или вы можете просто написать виджет, который будет показывать только текст с textView и onClick
будет отображать диалог с EditText
, где вы можете отредактировать этот текст/
Ответ 7
Попробуйте это
В вашей декларации Activity
в AndroidManifest.xml
добавьте нижеприведенный код:
android:windowSoftInputMode="stateHidden"
Это предотвратит всплывающую клавиатуру, когда активность станет видимой.
Счастливое кодирование:)
Ответ 8
Это сделает вашу работу:
android:windowSoftInputMode="stateHidden"