Android Scrollview в RelativeLayout с ButtonBar

Я пытаюсь реализовать представление входа в систему, где несколько EditTexts и логотип отображены на экране с ButtonBar внизу, чем-то вроде этого:

сопроводительный текст http://russellhaering.com/media/addAccount.png

Проблема состоит в том, что на очень маленьких экранах, особенно когда они повернуты боком, все основное представление не соответствует на экран.

Я в настоящее время имею



    
        
        
        
    
    
        

Я попытался инкапсулировать первый LinnearLayout в ScrollView, который похож на это:


            

Но это представляет две проблемы:

  1. ScrollView не прокручивает, даже на экранах, где данные все не соответствуют

  2. ButtonBar плавает сверху экранной клавиатуры, затеняя еще больше экрана, когда клавиатура подходит.

Все работавшее отлично, когда у меня были кнопки в ScrollView, но теперь, когда у меня есть они в ButtonBar, я испытываю много затруднений, понимая это.

8
задан russell_h 3 August 2010 в 03:19
поделиться

2 ответа

Оказалось, что решение требует двух шагов:

  1. Невозможность прокрутки была результатом того, что ScrollView находился за панелью кнопок. Чтобы исправить это, я определил ScrollView под панелью кнопок, а затем использовал android: layout_above = "@ id / buttonbar_login" , чтобы заставить ScrollView полностью находиться над панелью кнопок.

  2. Очевидно, что при открытии экранной клавиатуры, если у вас есть ScrollView, он будет изменен, позволяя панели кнопок всплывать вместе с клавиатурой. Чтобы исправить это, я изменил манифест и добавил android: windowSoftInputMode = "adjustPan", чтобы предотвратить изменение размера ScrollView.

15
ответ дан 5 December 2019 в 11:21
поделиться

Если ваш вариант использования поддерживает скрытие панели кнопок в альбомной ориентации, вы можете проверить Ресурсы .getSystem (). getConfiguration (). Ориентация == Configuration.ORIENTATION_LANDSCAPE и установите панель кнопок на View.GONE .

Возможно, вам также потребуется установить android: windowSoftInputMode = "adjustResize" для в вашем файле манифеста. Android автоматически поместит его в adjustResize , только если корневой макет - ScrollView (iirc).

0
ответ дан 5 December 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: