Android ScrollView работает неправильно, когда отображается экранная клавиатураAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android ScrollView работает неправильно, когда отображается экранная клавиатура

Сообщение Anonymous »

В моем приложении есть экран с вертикальным LinearLayout, содержащий пару помеченных полей ввода (EditText) и кнопки «Отмена» и «ОК» внизу, вот так:

Код: Выделить всё

a: [aaaaa]
b: [bbbb]
c: [ccc]
d: [dddddd]
e: [eeee]
... etc.

[Cancel] [OK]
Количество полей ввода может варьироваться (обозначено здесь ... и т. д. ), поэтому я поместил весь этот LinearLayout в (вертикальный) ScrollView на случай, если он превысит высота экрана.
Теперь, если я щелкну по любому из полей ввода, появится клавиатура. Это конечно задумано. Если количество полей превышает отображаемое количество полей, можно прокручивать вверх и вниз, чтобы отобразить поля и/или кнопки – опять же, как и предполагалось.
Однако не работает то, что – пока на экране отображается клавиатура — первое поле остается за пределами экрана, т. е. нельзя прокрутить ScrollView достаточно далеко вниз, чтобы верхнее поле (здесь: [aaaaa]) было полностью видно. Экран выглядит примерно так: становятся видны несколько нижних пиксельных линий, но большая часть первой строки остается скрытой, и, следовательно, первая строка нечитабельна.

Код: Выделить всё

_. ______
b: [bbbb]
c: [ccc]
d: [dddddd]
e: [eeee]
... etc.

[Cancel] [OK]
В нижней части ScrollView такого эффекта нет — кнопки становятся полностью видимыми при прокрутке экрана ScrollView вверх.
Я могу " заставить первую строку быть полностью видимой, когда отображается встроенная клавиатура, добавив android:paddingTop="24dp" в ScrollView, но тогда это выглядит очень странно, когда нет показана встроенная клавиатура, поскольку она вызывает довольно большое пустое пространство над списком - как будто там чего-то не хватает.
Также можно прокручивать вверх и вниз на всю длину, даже если экранная клавиатура не отображается. Но как только он появляется, верхняя строка «выпадает» поверх ScrollView.
Есть идеи, почему ScrollView не позволяет прокручивать до в самом верху содержащегося представления, когда отображается экранная клавиатура?

Подробнее здесь: https://stackoverflow.com/questions/793 ... d-is-shown
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»