Как использовать ScrollView
Использование ScrollView
не очень сложно.Вы можете просто добавить один к своему макету и поместить то, что вы хотите прокрутить внутри.ScrollView
занимает только одного ребенка, поэтому, если вы хотите поместить несколько вещей внутрь, вы должны сделать первое, что-то вроде LinearLayout
.
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- things to scroll -->
</LinearLayout>
</ScrollView>
Если вы хотите прокрутить вещи горизонтально, тогдаиспользуйте HorizontalScrollView
.
Заставьте контент заполнить экран
Как уже говорилось в в этом посте , иногда вы хотите ScrollView
контент для заполнения экрана.Например, если у вас есть несколько кнопок в конце файла readme.Вы хотите, чтобы кнопки всегда были в конце текста и в нижней части экрана, даже если текст не прокручивается.
Если содержимое прокручивается, все в порядке.Однако, если содержимое меньше размера экрана, кнопки не находятся внизу.
Это можно решить с помощью комбинациииспользования fillViewPort
на ScrollView
и использования веса макета для содержимого.Использование fillViewPort
заставляет ScrollView
заполнить родительскую область.Установка layout_weight
в одном из представлений в LinearLayout
расширяет это представление для заполнения любого дополнительного пространства.
Вот 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:fillViewport="true"> <--- fillViewport
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textview"
android:layout_height="0dp" <---
android:layout_weight="1" <--- set layout_weight
android:layout_width="match_parent"
android:padding="6dp"
android:text="hello"/>
<LinearLayout
android:layout_height="wrap_content" <--- wrap_content
android:layout_width="match_parent"
android:background="@android:drawable/bottom_bar"
android:gravity="center_vertical">
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Accept" />
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Refuse" />
</LinearLayout>
</LinearLayout>
</ScrollView>
Идея для этого ответа пришла из предыдущего ответа, который теперь удален ( ссылка для пользователей 10K ).Содержание этого ответа является обновлением и адаптацией этого поста .