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

#java #android #xml #scrollview

#java #Android #xml #scrollview

Вопрос:

В моей разметке есть несколько элементов. Эти элементы должны прокручиваться полностью, при прокрутке вниз календарь должен выходить за пределы экрана, если это необходимо, и прокручивать LinearLayout содержимое.

Я уже пытался добавить ScrollView , это было безрезультатно, т.к. прокручивался не весь экран целиком, а только календарь, прошу помочь.

Здесь код макета:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@ id/LinearLayout_calendar"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:scrollbars="vertical" >

    <RelativeLayout
        android:id="@ id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/calendar_top" >

        <RelativeLayout
            android:id="@ id/previous"
            android:layout_width="40dip"
            android:layout_height="30dip"
            android:layout_alignParentLeft="true" >

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:background="@drawable/arrow_left" />
        </RelativeLayout>

        <TextView
            android:id="@ id/title_calendar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="5dip"
            android:textColor="#000000"
            android:textSize="18dip"
            android:textStyle="bold" />

        <RelativeLayout
            android:id="@ id/next"
            android:layout_width="40dip"
            android:layout_height="30dip"
            android:layout_alignParentRight="true" >

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:background="@drawable/arrow_right" />
        </RelativeLayout>
    </RelativeLayout>

    <GridView
        android:id="@ id/gridview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:listSelector="@android:color/transparent"
        android:numColumns="7"
        android:stretchMode="columnWidth" >
    </GridView>

    <LinearLayout
        android:id="@ id/linLayout_all_ivents_in_this_day"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:scrollbars="vertical" >

    </LinearLayout>

</LinearLayout>
  

Комментарии:

1. Я не могу понять, о чем говорит этот вопрос. Необходимо улучшить английский, прежде чем можно будет дать какой-либо уверенный ответ.

Ответ №1:

Вы можете использовать ScrollView.

 <ScrollView
        android:id="@ id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

-> your xml code <-

</ScrollView>
  

Единственное, что вам нужно знать, это то, что scrollview может иметь только один дочерний узел, предпочтительно LinearLayout.

Ответ №2:

Используйте ScrollView: http://developer.android.com/reference/android/widget/ScrollView.html

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<LinearLayout
android:id="@ id/LinearLayout_calendar"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:scrollbars="vertical" >

<RelativeLayout
    android:id="@ id/header"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/calendar_top" >

    <RelativeLayout
        android:id="@ id/previous"
        android:layout_width="40dip"
        android:layout_height="30dip"
        android:layout_alignParentLeft="true" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:background="@drawable/arrow_left" />
    </RelativeLayout>

    <TextView
        android:id="@ id/title_calendar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="5dip"
        android:textColor="#000000"
        android:textSize="18dip"
        android:textStyle="bold" />

    <RelativeLayout
        android:id="@ id/next"
        android:layout_width="40dip"
        android:layout_height="30dip"
        android:layout_alignParentRight="true" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:background="@drawable/arrow_right" />
    </RelativeLayout>
</RelativeLayout>

<GridView
    android:id="@ id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:listSelector="@android:color/transparent"
    android:numColumns="7"
    android:stretchMode="columnWidth" >
</GridView>

<LinearLayout
    android:id="@ id/linLayout_all_ivents_in_this_day"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:scrollbars="vertical" >

</LinearLayout>

     </LinearLayout>
</ScrollView>