У меня есть макет, который содержит некоторые виды, как это:
<LinearLayout>
<TextView...>
<TextView...>
<ImageView ...>
<EditText...>
<Button...>
</linearLayout>
Как я могу установить фокус (дисплей клавиатуры) на моем EditText
программном обеспечении?
Я пробовал это, и он работает только тогда, когда я запускаю свой Activity
нормально, но когда я запускаю его в TabHost
, он не работает.
txtSearch.setFocusableInTouchMode(true);
txtSearch.setFocusable(true);
txtSearch.requestFocus();
android
focus
android-edittext
Хусина
источник
источник
Ответы:
Попробуй это:
http://developer.android.com/reference/android/view/View.html#requestFocus ()
источник
использовать:
источник
View
подкласса)imm.showSoftInput()
не работает.Это сработало для меня, благодаря ungalcrys
Показать клавиатуру:
Скрыть клавиатуру:
источник
showSoftInput
не работал на меня вообще.Я решил, что мне нужно установить режим ввода:
android:windowSoftInputMode="stateVisible"
(здесь, в компоненте Activity в манифесте)Надеюсь, это поможет!
источник
источник
tb.post({ showKeyboard(tb) })
). Обратите внимание, что нам нужно представление EditText (tb
), а не представление фрагмента.Вот как можно сделать расширение kotlin для отображения и скрытия программной клавиатуры:
Тогда вы можете просто сделать это:
источник
Я рекомендую использовать LifecycleObserver , который является частью Handling жизненного цикла с жизненным циклом-Aware компонентов в Android Jetpack .
Я хочу открыть и закрыть клавиатуру, когда появится фрагмент / действие. Во-первых, определите две функции расширения для EditText. Вы можете разместить их в любом месте вашего проекта:
Затем определите LifecycleObserver, который открывает и закрывает клавиатуру, когда действие / фрагмент достигает
onResume()
илиonPause
:Затем добавьте следующую строку в любой из ваших фрагментов / действий, вы можете использовать LifecycleObserver в любое время. Например, для фрагмента:
источник
Вот класс KeyboardHelper для скрытия и отображения клавиатуры
источник
Первый способ :
Второй способ :
В манифесте:
В коде:
источник
Я пробовал много способов, и это не работает, но я не уверен, что это потому, что я использую общий переход от фрагмента к деятельности, содержащей текст редактирования.
Кстати, мой текст редактирования также обернут в LinearLayout.
Я добавил небольшую задержку для запроса фокуса, и ниже код работал для меня: (Kotlin)
showKeyboard ()
источник
источник
Я не мог заставить ни один из этих ответов работать самостоятельно. Решением для меня было объединить их:
Я не уверен, почему это было необходимо для меня - согласно документам кажется, что любой из этих методов должен был работать самостоятельно.
источник