在ScrollView中设置重力

时间:2015-04-08 14:46:51

标签: android android-layout

我有一个带ScrollView的片段和两个LinearLayouts。我希望能够将第一个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:background="@android:color/white"
        tools:context=".activities.NavigationDrawerFragment"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:background="@color/darkblue"
            android:paddingBottom="40dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="20dp"
            android:layout_gravity="center|top">

            <ImageView
                android:id="@+id/img_drawler_value"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher"
                />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_marginLeft="5dp">
                <TextView
                    android:id="@+id/txt_drawler_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/txt_drawler_name"
                    android:textColor="@android:color/white"
                    android:textStyle="bold"
                    android:textSize="20sp" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    >
                    <TextView
                        android:id="@+id/txt_drawler_time_avariable"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/txt_drawler_time_avariable"
                        android:textColor="@android:color/white"
                        android:textSize="12sp"
                        android:textIsSelectable="false" />
                    <TextView
                        android:id="@+id/txt_drawler_time_value"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/empty"
                        android:textSize="12sp"
                        android:textColor="@android:color/white"/>
                </LinearLayout>
            </LinearLayout>


        </LinearLayout>

        <ScrollView
            android:scrollbars="none"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fillViewport="true"
            android:id="@+id/id_drawable_scrollView">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:gravity="top">

                        <Button
                            android:id="@+id/btn_drawler_home"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:background="@android:color/transparent"
                            android:gravity="center|left"
                            android:paddingBottom="10dp"
                            android:paddingLeft="10dp"
                            android:paddingTop="10dp"
                            android:text="@string/btn_drawler_home"
                            android:textColor="@android:color/black"
                            android:textSize="16sp" />

                        <View
                            android:layout_width="fill_parent"
                            android:layout_height="1dp"
                            android:background="@color/lightgray" />

                        <Button
                            android:id="@+id/btn_drawler_select"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:text="@string/btn_drawler_class_select"
                            android:textColor="@android:color/black"
                            android:background="@android:color/transparent"
                            android:gravity="center|left"
                            android:textSize="16sp"
                            android:paddingTop="10dp"
                            android:paddingBottom="10dp"
                            android:paddingLeft="10dp" />

                        <View
                            android:layout_width="fill_parent"
                            android:layout_height="1dp"
                            android:background="@color/lightgray"/>

                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:background="@color/green"
                    android:paddingBottom="20dp"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:paddingTop="30dp"
                    android:gravity="bottom">

                    <TextView
                        android:id="@+id/btn_drawler_toc"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@android:color/transparent"
                        android:text="@string/btn_drawler_toc"
                        android:gravity="left|center"
                        android:textColor="@android:color/white"
                        android:textSize="16sp"
                        android:paddingBottom="20dp"
                        />

                    <TextView
                        android:id="@+id/btn_drawler_faq"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@android:color/transparent"
                        android:text="@string/btn_drawler_faq"
                        android:gravity="left|center"
                        android:textColor="@android:color/white"
                        android:textSize="16sp"
                        android:paddingBottom="20dp"
                        />

                    <TextView
                        android:id="@+id/btn_drawler_contact"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@android:color/transparent"
                        android:text="@string/btn_drawler_contact"
                        android:gravity="left|center"
                        android:textColor="@android:color/white"
                        android:textSize="16sp"
                        android:paddingBottom="20dp"
                        />

                    <TextView
                        android:id="@+id/btn_drawler_logout"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@android:color/transparent"
                        android:text="@string/btn_drawler_logout"
                        android:gravity="left|center"
                        android:textColor="@android:color/white"
                        android:textSize="16sp"
                        />

                </LinearLayout>
            </LinearLayout>
        </ScrollView>

    </LinearLayout>

似乎ScrollView的子节点不能fill_parent或match_parent。这可能吗?

我想要实现的目标

enter image description here

谢谢

更新1

我不确定为什么不使用这种结构,在最后一种情况下滚动不起作用。

<RelativeLayout>
    <ScrollView>
        <LinearLayout>
            <LinearLayout>
            </LinearLayoyt>
            <LinearLayout>
            </LinearLayoyt>
        </LinearLayoyt>
    </ScrollView>
    <LinearLayout>
    </LinearLayoyt>
</RelativeLayout>

顺便说一句,我找到一个适合我的设置(使用不同的xml布局),但我不确定为什么它不起作用,也许有人可以帮助我理解。

2 个答案:

答案 0 :(得分:1)

而不是使用LinearLayout,只需使用RelativeLayout(作为ScrollView中的包装器)。然后使用:

而不是顶部和底部的重力 顶部android:layout_alignParentTop="true"中的

LinearLayout android:layout_alignParentBottom="true"

底部的LinearLayout

答案 1 :(得分:0)

您希望位于视图底部的线性布局位于另一个具有“中心|顶部”重力的线性布局下,因此第二个线性布局将位于父布局的底部 尝试将第二个布局作为父级而不是另一个布局的子级