У меня есть много элементов на экране, и мне нужно использовать полосу прокрутки, чтобы пользователь мог прокрутить вниз. Однако свиток либо не виден, либо не работает. Как можно добавить полосу прокрутки в LinearLayout
?
У меня есть много элементов на экране, и мне нужно использовать полосу прокрутки, чтобы пользователь мог прокрутить вниз. Однако свиток либо не виден, либо не работает. Как можно добавить полосу прокрутки в LinearLayout
?
Ответы:
Оберните линейный макет с <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 в качестве первого потомка файла макета и теперь поместите в него линейный макет. Теперь, на основе содержимого и размера устройства, android решит, показывать или нет прокрутку.
Убедитесь, что у linearlayout нет родного брата, потому что 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"