Intereting Posts
Значок приложения не появляется после установки приложения для Android. .length () vs .getText (). Length () vs .getText (). ToString (). Length () Сравнение телефонных номеров в Android Как я могу наложить CordovaWebView PhoneGap поверх собственного вида на Android? Исполнительная служба с заказом LIFO Какую версию Android sdk выпустить на рынок? Панель навигации Android, накладывающаяся на мой взгляд Приложение Android NDK потерпело крах при работе над функциями, которые даже не назывались Изменить порядок просмотров в линейном макете Android: screenOrientation = "портрет" игнорируется в Jellybean Как предотвратить спуфинг iBeacons? Отправка данных из мобильного приложения в Android Wear delay Элементы управления Youtube (воспроизведение / пауза) не работают после восстановления проигрывателя / активность возобновляется RealmMigrationNeededException при изменении модели Realm RecyclerView itemView OnGlobalLayoutListener не срабатывает для всех itemViews

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 на правом изображении:

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

Попробуйте добавить этот атрибут в свой элемент 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"