在scrollDrawer的HandleButton顶部对齐scrollView

时间:2014-06-20 08:46:34

标签: android android-layout android-xml android-ui

我正在使用slidedrawer和scrollView。 Scrollview位于屏幕顶部,而SlideDrawer位于屏幕顶部。我想将slidingDrawer设置在scrollView的handle按钮的顶部,因为我不希望scrollView在打开后占用所有屏幕。

这就是我想要的:

enter image description here

enter image description here

这就是我所拥有的:

enter image description here

我会想到这样的事情:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignBot="@id/handle"
    >

为了得到这个:

enter image description here

但这是不可能的,因为他是slideDrawer的孩子。 我收到了以下错误文字:

@id/handle is not a sibling in the same RelativeLayout

我的问题是:如何获得最后一个屏幕?

这是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<!-- SlidingDrawer -->



<SlidingDrawer
    android:id="@+id/slidingDrawer1"
    android:layout_width="match_parent"
    android:layout_height="300dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentBottom="true"
    android:content="@+id/content"
    android:handle="@+id/handle" >

    <Button
        android:id="@+id/handle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_slider" />

    <LinearLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal" >

            <ImageButton
                android:id="@+id/ImageButton_HG"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_weight="1"
                android:background="@color/backgroundBase"
                android:contentDescription="@style/appTitle"
                android:src="@drawable/bouton_note" />

            <ImageButton
                android:id="@+id/ImageButton_HD"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_weight="1"
                android:background="@color/backgroundBase"
                android:contentDescription="@style/appTitle"
                android:src="@drawable/bouton_photo" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal" >

            <ImageButton
                android:id="@+id/ImageButton_BG"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_weight="1"
                android:background="@color/backgroundBase"
                android:contentDescription="@style/appTitle"
                android:src="@drawable/sync_agenda" />

            <ImageButton
                android:id="@+id/ImageButton_BD"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_weight="1"
                android:background="@color/backgroundBase"
                android:contentDescription="@style/appTitle"
                android:src="@drawable/sync_contacts" />
        </LinearLayout>
    </LinearLayout>
</SlidingDrawer>




<!-- ScrollView -->
<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    >

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

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Notif1"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Notif2"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Notif3"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Notif4"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Notif5"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/textView6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Notif6"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/textView7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Notif7"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView OTHERS TEXTVIEW ... >
    </LinearLayout>

</ScrollView>


</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

我在我的应用程序中使用与MapFragment上方的ListView相同的方法。 Fragment和SlidingDrawer都放在FrameLayout中。关键是,正确定义SlidingDrawer句柄:android:handle="@+id/handle"

查看我的布局,希望它会有所帮助。还可以查看以下库,它应该是您的最佳选择:AndroidSlidingUpPanel

<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="15dp"
    class="com.google.android.gms.maps.SupportMapFragment"
    android:background="@android:color/transparent" />

<SlidingDrawer
    android:layout_width="match_parent"
    android:layout_height="250dp"
    android:layout_gravity="bottom"
    android:background="@android:color/transparent"
    android:content="@+id/spotsMap__list"
    android:gravity="center|top"
    android:handle="@+id/handle"
    android:orientation="vertical" >

    <RelativeLayout
        android:id="@id/handle"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center"
        android:orientation="vertical"
        android:paddingTop="10dp" >

        <View
            android:layout_width="match_parent"
            android:layout_height="25dp"
            android:layout_alignParentBottom="true"
            android:background="@drawable/spod_detail_bckg" />

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="42dp"
            android:scaleType="centerInside"
            android:src="@drawable/home" />
    </RelativeLayout>

    <ListView
        android:id="@id/spotsMap__list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="25dp"
        android:divider="@null"
        android:dividerHeight="0dp" >
    </ListView>
</SlidingDrawer>