- Hide Soft keyboard android code in Kotlin | programmatically?
- So How to Hide Soft keyboard android?
- Let’s see the step by step coding:-
- Step 1. Create a new project “Build Your First Android App in Kotlin“
- Step 2. Open the “MainActivity.kt” and add the following code.
- Step 3. Add EditText and Button in resources layout “activity_main.xml“
- Step 4. Now Run the application, in an emulator or on your Android device.
- Output screenshot Android Keyboard hide app example :
- Download source code Hide Soft keyboard android code in Kotlin
- Note: Clear focus to avoid showing keyboard again if you open the app from the background
- Закрыть / скрыть программную клавиатуру Android с помощью Kotlin
- 16 ответов
Hide Soft keyboard android code in Kotlin | programmatically?
Hiding a Soft keyboard in the Android app is easy, just press the back button of the Android phone. But in some situations, it does not work, as a full-screen Activity.
So How to Hide Soft keyboard android?
Let’s assume, we have an EditText and a Button in my layout. After click and writing in the edit field then clicking on the Button , we want to hide the virtual keyboard.
You can use Android with the following statement: Keyboard.hide() . That it but Android has a problem. You must use the InputMethodManager to hide the keyboard.
This is Android’s API to the keyboard. BUT! You are required to have a Context in order to get access to the IMM. Now we have a problem. I may want to hide the keyboard from a static or utility class that has no use or need for any Context . or And FAR worse, the IMM requires that you specify what View (or even worse, what Window ) you want to hide the keyboard FROM.
This is what makes hiding the keyboard so challenging. Let’s do Close/hide the Android Soft Keyboard android application.
The main code in kotlin:-
Let’s see the step by step coding:-
Step 1. Create a new project “Build Your First Android App in Kotlin“
Step 2. Open the “MainActivity.kt” and add the following code.
Step 3. Add EditText and Button in resources layout “activity_main.xml“
Step 4. Now Run the application, in an emulator or on your Android device.
Output screenshot Android Keyboard hide app example :
Download source code Hide Soft keyboard android code in Kotlin
Note: Clear focus to avoid showing keyboard again if you open the app from the background
Add this line to the end of the method:
Do comment if you have any doubts and suggestions on this tutorial.
Note: This example (Project) is developed in Android Studio 3.3.2. Tested on Android 9 ( Android-P), compile SDK version API 28: Android 9.0 (Pie)
MinSdkVersion=”15″
TargetSdkVersion=”28″
Coding in Kotlin
Degree in Computer Science and Engineer: App Developer and has multiple Programming languages experience. Enthusiasm for technology & like learning technical.
Источник
Закрыть / скрыть программную клавиатуру Android с помощью Kotlin
Я пытаюсь написать простое приложение для Android на Kotlin. У меня есть EditText и кнопка в моем макете. После записи в поле редактирования и нажатия кнопки, я хочу скрыть виртуальную клавиатуру.
Существует популярный вопрос Закрыть / скрыть Android Soft Keyboard о том, как делать это на Java, но, насколько я понимаю, должна быть альтернативная версия для Kotlin. Как я должен это делать?
16 ответов
Используйте следующие служебные функции в вашей деятельности, фрагменты, чтобы скрыть программную клавиатуру.
Это закроет клавиатуру независимо от вашего кода в фрагменте диалога и / или активности и т. Д.
Использование в Деятельности / Фрагмент:
Я думаю, что мы можем немного улучшить ответ Виктора. Основанный на том, что он всегда присоединен к представлению, будет контекст, если есть контекст, то есть InputMethodManager
В этом случае контекст автоматически означает контекст представления. Как вы думаете?
Просто переопределите этот метод в своей деятельности. Он также автоматически работает в своих дочерних фрагментах.
В ЯВА
В котлине
Проголосуйте, если это работает для вас. Спасибо.
Решение Питера аккуратно решает проблему, расширяя функциональность класса View. Альтернативным подходом может быть расширение функциональности класса Activity и, таким образом, связывание операции скрытия клавиатуры с контейнером View, а не с самим View.
В своей деятельности или фрагменте создайте функцию как:
предположим, у вас есть кнопка с идентификатором your_button_id в XML-файле, относящемся к этому действию или фрагменту, поэтому при событии нажатия кнопки:
Создайте объектный класс с именем Utils:
Вы можете использовать этот метод в любом классе, где вы хотите скрыть программную клавиатуру ввода. Я использую это в моем BaseActivity ,
Здесь представление — это любое представление, которое вы используете в макете:
Вы можете использовать Anko, чтобы облегчить жизнь, поэтому строка будет выглядеть так:
или, может быть, лучше создать функцию расширения:
и назовите это так:
Вот мое решение в Котлине для фрагмента. Поместите это внутрь setOnClickListener кнопки.
Я не видел этого варианта функции расширения Kotlin:
Его преимущество в том, что эта функция расширения может вызываться из каждого CustomView и в каждом прослушивателе щелчка или касания.
Спасибо @Zeeshan Ayaz Вот немного улучшенная версия
Поскольку ‘currentFocus’ допускает значение NULL, лучше проверить его с помощью Kotlin’s?.Let
Это хорошо работает с API 26.
Хотя есть много ответов, но этот ответ связан с передовой практикой в KOTLIN , открывая и закрывая клавиатуру с функцией жизненного цикла и расширения.
1). Создайте функции расширения, создайте файл EditTextExtension.kt и вставьте приведенный ниже код.
2). Создание класса LifeCycleObserver Создайте класс EditTextKeyboardLifecycleObserver.kt и вставьте код ниже
3). Затем используйте приведенный ниже код в onViewCreated / onCreateView
Клавиатура откроется, когда пользователь откроет фрагмент или действие.
Если у вас возникнут какие-либо проблемы, следуя решению, не стесняйтесь спрашивать в комментарии.
Источник