Изменение размера окна в приложении Kivy для Android на программной клавиатуре с SDL2

Just-Joe спросил: 26 декабря 2017 в 07:46 в: python

В настоящее время я работаю над Android-приложением, используя Python и Kivy Framework. Большая часть экранной недвижимости используется виджетами text_input. Я хотел бы изменить размер этого text_input, когда всплывает мягкая клавиатура Android, так что text_input заканчивается прямо в верхней части клавиатуры.

Для этого я попытался использовать Window.softinput_mode = 'resize' и когда это не сработало, обратитесь к Window.keyboard_height, чтобы сделать свой собственный размер и позиционирование. Согласно документации и комментариям в исходном коде Window, я вижу, что оба они не поддерживаются при использовании SDL2 на Android (Kivy 1.9 - 1.10).

Я тестировал Window.softinput_mode = 'below_target', который не похоже, что-то делает, и Window.softinput_mode = 'pan', который работает, но не дает мне правильную функциональность.

Последнее, что я пробовал, - установить Window.softinput_mode = 'pan' и с функцией вызов, связанный с событием on_keyboard, распечатает значение Window.top, так что если панорамирование просто сдвинуло положение окна вверх, я мог бы использовать эту точку отсчета для моего позиционирования и изменения размера. Однако значение Window.top не может измениться при панорамировании.

Единственный другой поток стека, который ссылался на эту проблему, и дал рабочий пример, использовал режим изменения размера, который не работает с использованием SDL2.

Правильное изменение размера главного окна киви, когда на андроиде появляется программная клавиатура

Есть ли какая-нибудь работа для выполнения этой функции или другой провайдера, чем SDL2, который будет хорошо работать на Android?


0 ответов