Как добавить статическую клавиатуру в Android? - PullRequest
0 голосов
/ 23 октября 2018

Я хочу добавить клавиатуру к активности в моем приложении.Мне не нужна клавиатура Android по умолчанию, которая появляется, когда пользователь щелкает текстовое поле, и скрывается, когда пользователь нажимает где-то еще.Я хочу сделать клавиатуру статичной (она доступна в любое время и не исчезает) и идентична на любом устройстве.

По сути, я бы хотел, чтобы клавиатура функционировала так же, как в этом приложении для кроссвордов (Изображение) , которое я нашел.

Первое решение, которое пришло мне в голову, былосделать клавиатуру полностью самостоятельно.В основном, чтобы добавить и жестко закодировать каждую кнопку вручную.

Есть ли способ сделать это проще?Есть ли доступный шаблон?

(я абсолютный новичок в Android, поэтому я мог пропустить даже самое очевидное решение)

Спасибо.

РЕДАКТИРОВАТЬ: Я хотел бы добиться не только того, чтобы клавиатура оставалась открытой все время, но также легко контролировать размер и положение клавиатуры.Я хочу, чтобы он занимал определенную область экрана.

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Вам понадобится создать собственную раскладку клавиатуры, но если она не должна быть полнофункциональной клавиатурой, она не будет слишком сложной.Поместите его в собственный XML-формат макета с соответствующими идентификаторами для каждого ключа.

Затем можно использовать <include> в макетах, где он должен быть включен.В Java (или Kotlin) вы можете затем создать «вспомогательный» класс, который берет корневой вид текущего Activity / Fragment, находит ключи и настраивает каркас слушателя для нажатия клавиши.

Что касается скрытия клавиатуры устройства, ознакомьтесь с ответами здесь .

0 голосов
/ 23 октября 2018

Поместите эти методы в свою деятельность.Для открытия клавиатуры

  public void openKeyboard() {
    InputMethodManager imm =
            (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    if (imm != null) {
        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
    }
}

Для закрытия клавиатуры:

public void closeKeyboard(Activity activity) {
    if (activity != null) {
        InputMethodManager inputMethodManager =
                (InputMethodManager) activity.getSystemService(
                        Activity.INPUT_METHOD_SERVICE);
        if (inputMethodManager != null && activity.getCurrentFocus() != null) {
            inputMethodManager.hideSoftInputFromWindow(
                    activity.getCurrentFocus().getWindowToken(), 0);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...