Odpowiedzi:
Zawiń układ liniowy za pomocą <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>
Uwaga: fill_parent jest przestarzałe i zmienia nazwę na match_parent na poziomie API 8 i wyższym.
<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>
Można to zrobić za pomocą znacznika <ScrollView>
. W przypadku ScrollView należy pamiętać, że ScrollView musi mieć jedno dziecko .
Jeśli chcesz, aby cały układ był przewijalny, dodaj go <ScrollView>
u góry. Sprawdź przykład podany poniżej.
<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>
Ale jeśli chcesz przewijać część układu, dodaj <ScrollView>
tę część. Sprawdź przykład podany poniżej.
<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>
Oto jak to zrobiłem metodą prób i błędów.
ScrollView - (the outer wrapper).
LinearLayout (child-1).
LinearLayout (child-1a).
LinearLayout (child-1b).
Ponieważ ScrollView może mieć tylko jedno dziecko, to dziecko jest układem liniowym. Następnie wszystkie pozostałe typy układów występują w pierwszym układzie liniowym. Nie próbowałem jeszcze dołączyć względnego układu, ale doprowadzają mnie do szału, więc poczekam, aż wrócę zdrowy rozsądek.
musisz użyć następującego atrybutu i zawrzeć go w układzie liniowym
<LinearLayout ...>
<scrollView ...>
</scrollView>
</LinearLayout>
Musisz umieścić ScrollView jako pierwsze dziecko pliku układu, a teraz umieścić w nim liniowy układ. Teraz Android zdecyduje na podstawie dostępnej zawartości i rozmiaru urządzenia, czy wyświetlać przewijane, czy nie.
Upewnij się linearlayout ma rodzeństwo ponieważ Scrollview nie może mieć więcej niż jedno dziecko.
<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>
Możesz dodać atrybut w linearLayout: android:scrollbars="vertical"