Высота клавиатуры Kivy

#android #python #ios #keyboard #kivy

#Android #python #iOS #клавиатура #kivy

Вопрос:

Для приложения, которое я создаю в Kivy, я хотел бы знать высоту клавиатуры, чтобы я мог соответствующим образом расположить виджеты. Я слышал, что plyer (https://github.com/kivy/plyer ) хорош для кроссплатформенности (я хочу разрабатывать для Android и iOS (и Windows phone)), однако, похоже, он не распространяется на управление с клавиатуры.

Как я могу получить информацию о высоте клавиатуры в Android (и iOS)? Я программирую на Python 3 (2.7 также поможет, если вы не знаете его на Python 3). Жестко заданная высота клавиатуры была бы плохой, так как высота клавиатуры различается.

Комментарии:

1. В Android этого нет. Это зависит от установленной клавиатуры. Нет никакого способа запросить его. Вместо этого вы можете указать, хотите ли вы изменить размер вашего приложения (оно снова будет размещено на оставшемся пространстве) или панорамировать (оно будет перемещено вверх, чтобы курсор всегда был на экране).

2. Обратите внимание, что вы не можете использовать Python3 на Android или iOS. Buildozer, python-for-android, pyjnius, python-ios и pyobjus пока не поддерживают Python3.

3. Я знаю о Python3, поэтому я пытаюсь запрограммировать свое приложение так, чтобы оно работало в обоих, чтобы я был на будущее. @Gabe к сожалению, мне нужен размер виджета, зависящий от высоты клавиатуры, я не собираюсь его увеличивать.

4. Обратите внимание, что теперь поддерживается Python3

Ответ №1:

Основная ветка содержит несколько новых дополнений, которые позволяют вам управлять этим. Используя Window ( from kivy.core.window import Window ), вы должны:

  • Window.keyboard_height задает текущую высоту программной клавиатуры
  • Window.softinput_mode может быть любой из '' (пустой), и в этом случае вы можете использовать keyboard_height, как указано выше, 'pan' в этом случае вид kivy смещается вверх, чтобы клавиатура не перекрывалась, или 'resize' в котором вид kivy изменяется, чтобы соответствовать пространству между верхней частью клавиатуры и верхней частью экрана.

Они находятся в документе для Windows.

В текущей стабильной версии нет хорошего способа сделать это, хотя, возможно, вы могли бы вызвать режимы панорамирования или изменения размера с помощью pyjnius.

Комментарии:

1. keyb_height = Окно. keyboard_height игнорируется на моем ПК, а на Android он выдает: объект ‘WindowPygame’ не имеет атрибута keyboard_height. Означает ли это, что я должен ждать следующей версии Kivy (или обновиться до нестабильной версии), или эта ошибка вызвана чем-то другим?

2. Эти настройки являются новыми в основной ветке и пока отсутствуют ни в одной стабильной версии. Так что да, вам нужно подождать или обновить. Как бы то ни было, основная ветвь, как правило, очень стабильна, у вас не должно возникнуть никаких проблем, если вы ее используете.