Как сделать макет прокручивать?



У меня есть много элементов на экране, и мне нужно использовать полосу прокрутки, чтобы пользователь мог прокручивать вниз. Однако прокрутка либо не видна, либо не работает. Как можно добавить полосу прокрутки в LinearLayout?

563   9  

9 ответов:

оберните линейный макет с <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>
<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 - (внешняя оболочка).

 LinearLayout (child-1).

      LinearLayout (child-1a).

      LinearLayout (child-1b

С функцией 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>

вам нужно использовать следующий атрибут и заключить его в линейный макет

<LinearLayout ...>
<scrollView ...> 

</scrollView>
</LinearLayout>
 <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"`enter code here`>

                <---------Content Here --------------->
            </LinearLayout>
       </ScrollView>
    </LinearLayout>

вам нужно разместить ScrollView как первый дочерний файл макета и теперь поместите свой linearlayout внутри него. Теперь android будет решать на основе контента и размера устройства, доступного для отображения прокручиваемого или нет.

убедитесь, что linearlayout не имеет родного брата, потому что ScrollView не может иметь более чем одного ребенка.

при использовании Eclipse ADT: Графический Макет - > Композитный - > ScrollView

вы можете добавить atrribute в linearLayout:android:scrollbars="vertical"

Comments

    Ничего не найдено.