Intereting Posts
Обработка и сглаживание IllegalStateException («состояние сохранения сбрасывания: активный $ Фрагмент очистил индекс: -1») Могу ли я использовать стиль вкладок по умолчанию в своем пользовательском представлении вкладки? Android: рисование на непрерывном ScrollView Жизненный цикл действия? Android Throwing OutOfMemoryError «Не удалось выделить выделение по 164 байта с 44 свободными байтами и 44B до OOM» (рекурсивный случай) Как возможно, что приложение Google Fit измеряет количество шагов все время без отвода батареи? Как вы имеете дело с кодом ошибки LicenseCheckerCallback.ERROR_NOT_MARKET_MANAGED? Ormlite, listViews и адаптеры? Кнопка Android с левой и правой маркой Определите, какой вид в данный момент находится в режиме Touched, когда пользователь перемещает палец В чем разница между styles.xml и themes.xml Как я могу создать собственный собственный магазин приложений для Android? Как вызвать javascript из Android? Получить номер версии WebView для леденца? Эмулирующая плотность 320 dpi на эмуляторе Android

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>