В этой статье мы рассмотрим пример использования ScrollView в простом Android приложении.
ScrollView — служит для упаковки иерархии объектов View в контейнер, который можно прокручивать (скролить).
Обзор Scrollview в Android
Контейнер Scrollview представляет собой особый тип FrameLayout. Его особенность состоит в том, что он позволяет пользователям просматривать контент, который занимает больше места, чем физически есть на дисплее. Иными словами — просматривать контент, который не вмещается на экране без прокрутки.
Scrollview может содержать только один дочерний элемент или контейнер ViewGroup
.
Советы по использованию Scrollview
- Никогда не используйте view-компонент ListView или GridView вместе со ScrollView. ListView предназначен для отображения списка элементов и оптимизирован для работы с большим объемом данных. Кроме того, он содержит встроенные возможности для прокрутки содержимого.
- Контейнер Scrollview поддерживает только вертикальную прокрутку. Если Вы хотите добавить горизонтальную прокрутку, то нам понадобится другой наследник FrameLayout — контейнер HorizontalScrollView.
- В xml разметке контейнер ScrollView имеет полезное свойство
android:fillViewport
, которое определяет, должен ли Scrollview растягивать свое содержание, чтобы заполнить доступное место на экране. Также доступен метод для установки этого значения в коде:setFillViewport(boolean)
.
Пример использования Scrollview в Android
Первым делом создадим новый Android проект.
Теперь создадим макет, в котором будет виджет ImageView с картинкой и два TextView: для заголовка и текста. Все это обернем в вертикальный LinearLayout и поместим в корневой ScrollView (помним, что Scrollview не может содержать больше одного дочернего элемента):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?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:fillViewport="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:layout_width="match_parent" android:layout_height="212dp" android:src="ВАША_КАРТИНКА" /> <TextView android:layout_marginTop="15dp" android:layout_marginBottom="15dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="SharedPreferences в Android: сохраняем настройки" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:textAppearance="?android:attr/textAppearanceSmall" android:text="Вставьте здесь очень длинный текст, который должен будет прокручиваться" /> </LinearLayout> </ScrollView> |
Превью на устройстве будет следующим:
Как видите, у нас есть контент, который единовременно не помещается на экране. Мы его поместили в контейнер Scrollview тем самым позволил вертикальную прокрутку по всей высоте контента.
добавил в текст кнопки, ну вы поняли все сделал по примеру. в Скрулл вставил текст с кнопкой. чото прокрутка не работает. что может быть?