我正在使用slidedrawer和scrollView。 Scrollview位于屏幕顶部,而SlideDrawer位于屏幕顶部。我想将slidingDrawer设置在scrollView的handle按钮的顶部,因为我不希望scrollView在打开后占用所有屏幕。
这就是我想要的:
这就是我所拥有的:
我会想到这样的事情:
<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"
>
为了得到这个:
但这是不可能的,因为他是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>
答案 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>