Intereting Posts
Как нарисовать растровое изображение в андроиде? ClassCastException при динамической загрузке класса в Android PhoneGap android: поле ввода перекрытий клавиатуры Как получить версиюName в интерактивном приложении на Android? Как лучше всего добавить систему комментариев / рейтинга в приложение для Android Как получить доступ к кодам статуса MediaMetadataRetriever.setDataSource (…)? Как отключить сканирование для модели в Activeandroid ArcGIS: как получить местоположение устройства Как я могу создать новое виртуальное устройство мыши на моем устройстве Android? Как обнаружить щелчок по полилинии Почему Volley возвращается к SSLV3? Использование сценария конфигурации с прокси-сервером с эмулятором Android Android: тема подключения к приложениям – диалог, когда большой Нарисуйте круг с гладкими краями Могу ли я загружать изображения и текст, используя UrlEncodedFormEntity для нескольких частей?

ScrollView добавляет большое пространство внизу

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="@drawable/bg" android:gravity="center_horizontal"> <TextView android:id="@+id/trackSelectorText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal"/> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center_horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="foo" /> <!-- More buttons --> </LinearLayout> </ScrollView> </LinearLayout> 

Этот вид работает, однако у меня есть большое пустое место ниже последней кнопки (т. Е. ScrollView может прокручивать слишком далеко). Как на реальной планшетах, так и на эмуляторе с конфигурацией телефона. Если я центрирую внутренний LinearLayout (вместо center_horizontal ), пространство равномерно распределяется между верхним и нижним, чего я тоже не хочу. Как исправить этот макет?

Я надеюсь, что этот образ станет более понятным, представьте, что ScrollView полностью прокручивается вниз и показывает последние кнопки. Пустое пространство, которое я имею в виду, – это под кнопкой 6 на правом изображении:

Введите описание изображения здесь

Solutions Collecting From Web of "ScrollView добавляет большое пространство внизу"

Попробуйте добавить этот атрибут в свой элемент ScrollView. андроид: fillViewport = "истина"

 <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:fillViewport="true" > ... </ScrollVIew> 

Ссылка: ScrollView Ref

Фактически, это не было действительно связано с макетом (если я не пропустил что-то). Я пробовал комментировать фоновый атрибут, и он внезапно сработал. Фоновое изображение ( @drawable/bg ) было просто слишком большим и вызывало прокрутку. Я преобразовал фон в 9-патч-образ, поэтому его можно было масштабировать автоматически, а voilà – дополнительное пространство. Тем не менее, если бы это было осуществимо без 9-патча, мне все равно было бы интересно узнать, можно ли это сделать в файле XML.

Я проверил с моим кодом. Работать отлично:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/bg" android:gravity="center_horizontal"> <TextView android:id="@+id/trackSelectorText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal"/> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center_horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="foo" /> <!-- More buttons --> </LinearLayout> </ScrollView> </LinearLayout> 

Может помочь тебе ……. !!

Вы можете использовать этот атрибут в scrollview, чтобы избежать дополнительного дополнения в нижней части окна

 android:overScrollMode="never"