Відповіді:
Оберніть лінійний макет a <ScrollView>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Content here -->
</LinearLayout>
</ScrollView>
</LinearLayout>
Примітка: fill_parent застарілий і перейменований на match_parent в API рівня 8 і вище.
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/container"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</LinearLayout>
</ScrollView>
Це можна зробити за допомогою тегу <ScrollView>
. Для ScrollView потрібно нагадати, що у ScrollView має бути одна дитина .
Якщо ви хочете, щоб ваш повний макет прокручувався, тоді додайте <ScrollView>
вгорі. Перевірте наведений нижче приклад.
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Content here -->
</LinearLayout>
</ScrollView>
Але якщо ви хочете, щоб якась частина вашого макета прокручувалася, тоді додайте її <ScrollView>
до цієї частини. Перевірте наведений нижче приклад.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="400dp">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Content here -->
</LinearLayout>
</ScrollView>
</LinearLayout>
Ось як я це зробив методом проб і помилок.
ScrollView - (the outer wrapper).
LinearLayout (child-1).
LinearLayout (child-1a).
LinearLayout (child-1b).
Оскільки в ScrollView може бути лише одна дитина, ця дитина є лінійною схемою. Тоді всі інші типи компонування трапляються в першому лінійному макеті. Я ще не намагався включити відносну компоновку, але вони ганяють мене, тому я зачекаю, поки повернеться розум.
вам потрібно використовувати наступний атрибут та вкласти його в лінійний макет
<LinearLayout ...>
<scrollView ...>
</scrollView>
</LinearLayout>
Потрібно розмістити ScrollView як першу дочірню частину файлу макета, а тепер покласти її лінійний проміжок всередину нього. Тепер андроїд вирішить, залежно від вмісту та розміру пристрою, показувати, чи потрібно прокручувати чи ні.
Переконайтесь, що в лінійному розкладі немає рідних братів, оскільки в ScrollView не може бути більше однієї дитини.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<---------Content Here --------------->
</LinearLayout>
</ScrollView>
</LinearLayout>
Ви можете додати атрибут у linearLayout: android:scrollbars="vertical"