Подтвердить что ты не робот

Как очистить фокус для EditText?

У меня есть активность с EditText поиска (EditText) в верхней части и ListView ниже. Всякий раз, когда начинается действие, EditText всегда имеет фокус и вызывает клавиатуру, которая частично покрывает ListView.

Там нет другого текстового представления, которое может иметь фокус. Я хочу, чтобы EditText имел фокус ТОЛЬКО, когда пользователь касается его и начинает печатать. Я пытаюсь поставить clearFocus() в onCreateView, onViewCreated или onCreated, но onCreated.

4b9b3361

Ответ 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"