Intereting Posts
Слушатель Onlclick работает неправильно ..? Постоянный значок службы в панели уведомлений Как мы можем заблокировать ориентацию экрана камеры во время процесса захвата камеры? Захват изображения без предварительного просмотра с помощью API камеры2 UnsatisfiedLinkError: dlopen failed: не удается найти символ «strtof», на который ссылается «libsupportjni.so» на API <20 Открытый API-вызов для получения статуса PNR Android: пример внедрения headergridview google Разработка мобильного сайта. Когда начать? Веб-приложение HTML5 против собственных мобильных приложений Закрыть клавиатуру при прокрутке в раскрывающемся списке на autocompletetextview в Android Код переключения между режимами отладки и режима выпуска в java – android Где хранятся общие настройки? Пост-компиляция удаление аннотаций из байтового кода Сбросить значения по умолчанию для предпочтений Android Studio – удалить предупреждение безопасности

Scrollview выходит за пределы экрана

У меня внезапно возникла проблема с тем, что Scrollview выходит за пределы экрана, так что даже если вы прокрутите весь путь вниз, он не покажет весь его контент. XML:

<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFFFF"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="15dp" android:background="#FFBBBBBB" android:orientation="vertical" > <View android:layout_width="100dp" android:layout_height="300dp" android:layout_margin="15dp" android:layout_gravity="center_horizontal" android:background="#FFDDDDFF"/> <View android:layout_width="100dp" android:layout_height="300dp" android:layout_margin="15dp" android:layout_gravity="center_horizontal" android:background="#FFDDDDFF"/> </LinearLayout> </ScrollView> 

Это не получается проще. Когда вы прокрутите весь путь вниз (как указано по форме скроллера), вы должны увидеть нижний белый край, но вместо этого это выглядит так:

Нижней части прокрутки

Сравните с вершиной:

Верхняя часть прокрутки

Дно должно выглядеть как верх, только наоборот. Это происходит в эмуляторе, на реальных устройствах и почти в каждой версии Android, которую я пробовал. Я не понимаю, что я делаю неправильно (если что-нибудь …).

Пожалуйста, никаких догадок и стрельбы из бедра! Только проверенные ответы. Я потратил достаточно времени на это уже так, как есть. Благодарю.

Solutions Collecting From Web of "Scrollview выходит за пределы экрана"

Потеряв много времени в мертвых переулках, я, наконец, оказался на правильном пути этой другой SO-нитью : проблема была в макете на LinearLayout. Очевидно, ScrollView не нравится, так как он не любит, чтобы его дочерний элемент был центрирован (проблема отмечена многими другими людьми, но не моя проблема здесь), и кто знает, что еще. Очень разборчивый виджет. Именно такие проблемы заставляют меня пересмотреть мою приверженность Android: это слишком трудоемко по сравнению с альтернативными платформами, и даже если вам нравится вызов, время – деньги.

Во всяком случае, в интересах тех, кто будет баллотироваться здесь позже, вот бок о бок демонстрация сломанного макета (более простая версия выше) слева и рабочий справа. Хитрость заключается в том, чтобы эмулировать запас verboten с заполнением на дополнительном контейнере.

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#00FFFF" android:orientation="horizontal" android:baselineAligned="false"> <ScrollView android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:background="#FFFFFFFF"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="15dp" android:background="#FFBBBB22" android:orientation="vertical"> <View android:layout_width="100dp" android:layout_height="1000dp" android:layout_margin="15dp" android:layout_gravity="center_horizontal" android:background="#FFDDDDFF"/> </LinearLayout> </ScrollView> <View android:layout_width="1dp" android:layout_height="match_parent" android:background="#FF000000"/> <ScrolllView android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:background="#FFFFFFFF"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="15dp" android:background="#FFFFFF" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#FFBBBB22" android:orientation="vertical"> <View android:layout_width="100dp" android:layout_height="1000dp" android:layout_margin="15dp" android:layout_gravity="center_horizontal" android:background="#FFDDDDFF"/> </LinearLayout> </LinearLayout> </ScrollView> </LinearLayout> 1 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#00FFFF" android:orientation="horizontal" android:baselineAligned="false"> <ScrollView android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:background="#FFFFFFFF"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="15dp" android:background="#FFBBBB22" android:orientation="vertical"> <View android:layout_width="100dp" android:layout_height="1000dp" android:layout_margin="15dp" android:layout_gravity="center_horizontal" android:background="#FFDDDDFF"/> </LinearLayout> </ScrollView> <View android:layout_width="1dp" android:layout_height="match_parent" android:background="#FF000000"/> <ScrolllView android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:background="#FFFFFFFF"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="15dp" android:background="#FFFFFF" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#FFBBBB22" android:orientation="vertical"> <View android:layout_width="100dp" android:layout_height="1000dp" android:layout_margin="15dp" android:layout_gravity="center_horizontal" android:background="#FFDDDDFF"/> </LinearLayout> </LinearLayout> </ScrollView> </LinearLayout> 

Попробуйте поместить прописку в нижней части прокрутки, чтобы вы увидели белую линию внизу – ваше представление действительно прокручивается до конца, я пробовал его с помощью этого кода, и результат таков:

 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFFFF" android:padding="5dp" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="15dp" android:background="#FFBBBBBB" android:orientation="vertical" > <View android:layout_width="100dp" android:layout_height="1500dp" android:layout_gravity="center_horizontal" android:layout_margin="15dp" android:background="#FFDDDDFF" /> <View android:layout_width="100dp" android:layout_height="300dp" android:layout_gravity="center_horizontal" android:layout_margin="15dp" android:background="#FFDDDDFF" /> <View android:layout_width="100dp" android:layout_height="10dp" android:layout_gravity="center_horizontal" android:layout_margin="15dp" android:background="#FF00FF00" /> </LinearLayout> 

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

Просто попробуйте поставить LinearLayout внутри другого. Вот так:

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFFFF"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="15dp" android:background="#FFBBBBBB" android:orientation="vertical"> <View android:layout_width="100dp" android:layout_height="300dp" android:layout_gravity="center_horizontal" android:layout_margin="15dp" android:background="#FFDDDDFF" /> <View android:layout_width="100dp" android:layout_height="300dp" android:layout_gravity="center_horizontal" android:layout_margin="15dp" android:background="#FFDDDDFF" /> </LinearLayout> </LinearLayout> </ScrollView>