KeyboardAvoidingView с поведением="padding" создает "плавающий" пробел на Android при упаковке Sendbird GroupChannelFragAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 KeyboardAvoidingView с поведением="padding" создает "плавающий" пробел на Android при упаковке Sendbird GroupChannelFrag

Сообщение Anonymous »

Я пытаюсь заставить Sendbird GroupChannelFragment работать с настраиваемым заголовком на Android, и у меня постоянно возникает ошибка макета.
Мой макет экрана представляет собой настраиваемый заголовок и переключатель, под которым находится GroupChannelFragment (с использованием GroupChannelInput по умолчанию).
Я использую KeyboardAvoidingView с поведением="padding", потому что альтернатива (behavior="height") имеет другие ошибки, а простое использование свойства Sendbird KeyboardAvoidOffset само по себе приводило к скрытию ввода.
Проблема (только для Android):

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

Initial Load: The GroupChannelInput is perfectly positioned at the bottom of the screen. (This is correct).

Keyboard Opens: A large gap appears between the top of the keyboard and the bottom of the input field. (See image 1).

Keyboard Closes: The GroupChannelInput does not return to the bottom. It gets "stuck" and "floats" with a permanent gap, which looks identical to the gap from when the keyboard was open. (See image 2).
Если я ухожу от экрана и обратно, раскладка фиксируется, но как только я использую клавиатуру, она снова ломается.
Я измеряю высоту заголовка и переключателей и передаю их как KeyboardVerticalOffset. Это значение (keyboardOffset) правильное (около 173 пикселей).

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

{activeView === 'Chat' ? (


) : (
renderProfileView()
)}
И мое создание GroupChannelFragment:

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

const GroupChannelFragment = createGroupChannelFragment({
Header: () => null, // Hide the fragment's header since we have our own at the top
// Use Sendbird's default Input component (no custom Input prop)
});
Похоже, что KeyboardAvoidingView с поведением="padding" добавляет KeyboardVerticalOffset плюс высоту клавиатуры, а затем не может его правильно удалить.
Как правильно обернуть GroupChannelFragment на Android, чтобы учесть пользовательский заголовок без этого пробела или «плавающей» ошибки ввода?
Клавиатура открыта (обратите внимание на пробел)
Клавиатура закрыта (Обратите внимание на «плавающий» пробел)

Подробнее здесь: https://stackoverflow.com/questions/798 ... -android-w
Ответить

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

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

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

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

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