Kivy TextInput должен быть выше Android клавиатуры, однако остальная часть экрана остается там, где она есть - PullRequest
2 голосов
/ 23 апреля 2020

Я создаю игру-викторину в Киви, в которой для пользователей внизу экрана есть опция TextInput. Это внизу, потому что подсказки для ответов отображаются в верхней части.

Проблема, с которой я сталкиваюсь, заключается в том, что при развертывании приложения на телефоне появляется экранная клавиатура Android, которая блокируется. почти половина моего экрана.

Я попробовал softinput_mode в пакете Windows, но это, кажется, высветило весь мой экран sh и теперь верхняя половина экрана исчезла (и пользователи больше не могут видеть подсказки).

Есть ли способ включить это в FloatLayout, где находится мое поле TextInput?

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

main.py:

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.core.window import Window

Window.softinput_mode = "below_target"

class TestBox(BoxLayout):
    pass

class RVTestApp(App):
    def build(self):
        return TestBox()


RVTestApp().run()

.kv file:

<GameWindow>:
    FloatLayout:
        Label:
            pos_hint: {'center_x': 0.5, "center_y": 0.9}
            size_hint: (0.2, 0.5)
            font_size: 80
            color: 0, 0, 0, 1
            text: "TEXT AT TOP OF SCREEN"
        TextInput:
            pos_hint: {'x': 0.25, 'y': 0.05}
            size_hint: (0.3, 0.05)
            id: guess
            multline:False
        Button:
            text: "CHECK BUTTON FOR ANSWERS AT BOTTOM OF SCREEN"
            pos_hint: {"x": 0.6, "y": 0.05}
            size_hint: (0.3, 0.05)

Буду очень признателен за любую помощь в том, как исправить этот бит, спасибо вы!

...