滑块抽屉占据整个屏幕

时间:2014-01-09 12:58:28

标签: android xml android-layout menu slider

我已经创建了一个自定义滑动菜单,但它似乎占用了所有屏幕。我的意思是我不能点击布局上的其他项目。它并不总是开放的,只是实际上禁用了它下面的所有项目。我已将xml附加到一个活动

<RelativeLayout
    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:gravity="bottom"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".HomeActivity">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="132dp"
        android:text="@string/name"
        android:textSize="25sp" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/textView1"
        android:layout_alignParentLeft="true"
        android:contentDescription="@string/description1"
        android:src="@drawable/fam" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="@string/enter" />

    <android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ListView android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="#666"
        android:dividerHeight="1dp"
        android:background="#333"
        android:paddingLeft="15sp"
        android:paddingRight="15sp" />

    </android.support.v4.widget.DrawerLayout>

</RelativeLayout>

6 个答案:

答案 0 :(得分:0)

尝试使用此而不是match_parent:

android:layout_height="wrap_content"

答案 1 :(得分:0)

请更改宽度

   <ListView android:id="@+id/left_drawer"
        android:layout_width="match_parent"//not indp
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="#666"
        android:dividerHeight="1dp"
        android:background="#333"
        android:paddingLeft="15sp"
        android:paddingRight="15sp"
        />

和抽屉应该是所有视图的父亲请尝试这个

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".HomeActivity" >


    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="132dp"
        android:text="@string/name"
        android:textSize="25sp" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/textView1"
        android:layout_alignParentLeft="true"
        android:contentDescription="@string/description1"
        android:src="@drawable/fam" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="@string/enter" />
</RelativeLayout>

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

  <ListView android:id="@+id/left_drawer"
        android:layout_width="match_parent"//not indp
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="#666"
        android:dividerHeight="1dp"
        android:background="#333"
        android:paddingLeft="15sp"
        android:paddingRight="15sp"
        />

答案 2 :(得分:0)

只需将android:layout_below="@+id/button1"设置为DrawerLayout,如下所示:

  <android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:layout_below="@+id/button1"> //set your drawer layout at the bottom of your `Button`. 

答案 3 :(得分:0)

请查看Android开发者关于DrawerLayout的培训文章 - http://developer.android.com/training/implementing-navigation/nav-drawer.html#top

从我的观点来看,似乎你没有正确使用它。如上文所述:以下布局使用具有两个子视图的DrawerLayout:一个FrameLayout包含主要内容(在运行时由Fragment填充),以及一个用于导航抽屉的ListView。 < / p>

此框架布局用于您的活动内容。所以你必须使用片段

<FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

此ListView是导航抽屉的内容

<ListView android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="#666"
        android:dividerHeight="1dp"
        android:background="#333"
        android:paddingLeft="15sp"
        android:paddingRight="15sp"
        />

所以将其他组件放入片段。

答案 4 :(得分:0)

我也有同样的问题,下面的代码对我有用。使用它而不是匹配父:     机器人:layout_height = “WRAP_CONTENT”

答案 5 :(得分:0)

    android:layout_marginTop="200dp"

我的代码中有这个功能。我把android:layout_height =&#34; wrap_content&#34;我删除了marginTop,我的全高度SlidingDrawer。