Как не дать AdView заставить программную клавиатуру поднимать все мои представления? - PullRequest
0 голосов
/ 30 января 2019

AdView и «фоновое» представление, занимающее 90% пространства на экране, добавляются в RelativeLayout, который является корневым представлением активности.Все прекрасно работает без AdView, и с его помощью программная клавиатура изменяет представление «фона» и портит все.

Я пытался сделать android:windowSoftInputMode="adjustNothing" в сочетании с четырьмя наиболее популярными хакерами дляпроверить, отображается ли программная клавиатура, и установить видимость AdView на Gone, если она есть.Не работает.

Есть ли что-то, что я могу сделать с представлением корня активности и / или способом добавления AdView и представления "фона"?

РЕДАКТИРОВАТЬ: Я нашелрешение!Если кто-то с похожим вопросом обнаружит это, вот как я решил это.

Я добавил булеву переменную 'boardShowing' в Singleton.Действия, которые порождают клавиатуру, такие как onClick EditText, отключают AdView и устанавливают для BoardShowing значение true, а действия, которые убирают клавиатуру, устанавливают BoardShowing в значение false и запускают таймер на 500 мс.Если после 500 мс «boardShowing» все еще имеет значение false, AdView снова включается.

Очевидно, что это не безопасно для потоков, но если вы используете потоки, вы можете сделать это довольно легко.с замками.Надеюсь, я помог!

...