当抽屉布局打开时,主要布局内容仍然可见

时间:2015-12-09 09:19:50

标签: android android-layout android-navigation-drawer

我使用DrawerLayout为我的应用添加了一些快捷菜单。 Drawerlayout工作但我的问题是当抽屉打开主要布局内容时,ButtonsTextViews和其他UI控件在打开的抽屉上可见。这是我的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"
tools:context=".MainActivity"
android:background="@color/icons"
android:focusableInTouchMode="true">

<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:background="#ffffff"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp" />

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

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/rl">

    <Button
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:drawableTop="@drawable/fan_blade1"
        android:drawablePadding="-20dp"
        android:textColor="#ffffff"
        android:background="@drawable/btn_black"
        android:layout_marginLeft="30dp"
        android:layout_marginStart="30dp"
        android:layout_below="@+id/button7"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <SeekBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button"
        android:layout_marginTop="30dp"
        android:layout_marginEnd="30dp"
        android:layout_marginRight="30dp"
        android:layout_alignLeft="@+id/button"
        android:layout_alignStart="@+id/button"
        android:id="@+id/seekBar"
        android:thumb="@drawable/seek_thumb"
        android:progressDrawable="@drawable/progressbr"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView5"
        android:text="speed"
        android:layout_alignTop="@+id/button2"
        android:layout_alignRight="@+id/imageView"
        android:layout_alignEnd="@+id/imageView" />

    <Button
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:text="S1"
        android:id="@+id/button2"
        android:textColor="#ffffff"
        android:background="@drawable/btn_black"
        android:layout_below="@+id/seekBar"
        android:layout_alignLeft="@+id/seekBar"
        android:layout_alignStart="@+id/seekBar"
        android:layout_marginTop="30dp" />

    <Button
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:text="S2"
        android:id="@+id/button3"
        android:textColor="#ffffff"
        android:background="@drawable/btn_black"
        android:layout_below="@+id/button2"
        android:layout_alignLeft="@+id/button2"
        android:layout_alignStart="@+id/button2"
        android:layout_marginTop="30dp" />

    <Button
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:text="S3"
        android:id="@+id/button4"
        android:textColor="#ffffff"
        android:background="@drawable/btn_black"
        android:layout_below="@+id/button3"
        android:layout_alignLeft="@+id/button3"
        android:layout_alignStart="@+id/button3"
        android:layout_marginTop="30dp" />

    <Button
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:drawablePadding="-20dp"
        android:id="@+id/button5"
        android:textColor="#ffffff"
        android:drawableTop="@drawable/shutdown_icon1"
        android:background="@drawable/btn_black"
        android:layout_below="@+id/button4"
        android:layout_alignLeft="@+id/button4"
        android:layout_alignStart="@+id/button4"
        android:layout_marginTop="30dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="out command"
        android:id="@+id/textView3"
        android:layout_marginLeft="20dp"
        android:layout_marginStart="20dp"
        android:layout_above="@+id/button3"
        android:layout_toRightOf="@+id/button2"
        android:layout_toEndOf="@+id/button2" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="in command"
        android:id="@+id/textView4"
        android:layout_above="@+id/button4"
        android:layout_alignLeft="@+id/textView3"
        android:layout_alignStart="@+id/textView3" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:src="@drawable/wheel1"
        android:contentDescription="test"
        android:layout_marginTop="30dp"
        android:layout_alignBottom="@+id/button"
        android:layout_toLeftOf="@+id/button7"
        android:layout_toStartOf="@+id/button7" />

    <ImageView
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:id="@+id/button7"
        android:background="@drawable/red"
        android:clickable="false"
        android:layout_marginTop="7dp"
        android:layout_marginRight="7dp"
        android:layout_marginEnd="7dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

</RelativeLayout>

请纠正我的错误。 我的ScreenShot是 enter image description here

2 个答案:

答案 0 :(得分:2)

将您的布局更改为:

<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:background="@color/icons"
    android:focusableInTouchMode="true"
    tools:context=".MainActivity">

    <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" />

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/rl">

            <Button
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:id="@+id/button"
                android:drawableTop="@drawable/fan_blade1"
                android:drawablePadding="-20dp"
                android:textColor="#ffffff"
                android:background="@drawable/btn_black"
                android:layout_marginLeft="30dp"
                android:layout_marginStart="30dp"
                android:layout_below="@+id/button7"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <SeekBar
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/button"
                android:layout_marginTop="30dp"
                android:layout_marginEnd="30dp"
                android:layout_marginRight="30dp"
                android:layout_alignLeft="@+id/button"
                android:layout_alignStart="@+id/button"
                android:id="@+id/seekBar"
                android:thumb="@drawable/seek_thumb"
                android:progressDrawable="@drawable/progressbr"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textView5"
                android:text="speed"
                android:layout_alignTop="@+id/button2"
                android:layout_alignRight="@+id/imageView"
                android:layout_alignEnd="@+id/imageView" />

            <Button
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="S1"
                android:id="@+id/button2"
                android:textColor="#ffffff"
                android:background="@drawable/btn_black"
                android:layout_below="@+id/seekBar"
                android:layout_alignLeft="@+id/seekBar"
                android:layout_alignStart="@+id/seekBar"
                android:layout_marginTop="30dp" />

            <Button
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="S2"
                android:id="@+id/button3"
                android:textColor="#ffffff"
                android:background="@drawable/btn_black"
                android:layout_below="@+id/button2"
                android:layout_alignLeft="@+id/button2"
                android:layout_alignStart="@+id/button2"
                android:layout_marginTop="30dp" />

            <Button
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="S3"
                android:id="@+id/button4"
                android:textColor="#ffffff"
                android:background="@drawable/btn_black"
                android:layout_below="@+id/button3"
                android:layout_alignLeft="@+id/button3"
                android:layout_alignStart="@+id/button3"
                android:layout_marginTop="30dp" />

            <Button
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:drawablePadding="-20dp"
                android:id="@+id/button5"
                android:textColor="#ffffff"
                android:drawableTop="@drawable/shutdown_icon1"
                android:background="@drawable/btn_black"
                android:layout_below="@+id/button4"
                android:layout_alignLeft="@+id/button4"
                android:layout_alignStart="@+id/button4"
                android:layout_marginTop="30dp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="out command"
                android:id="@+id/textView3"
                android:layout_marginLeft="20dp"
                android:layout_marginStart="20dp"
                android:layout_above="@+id/button3"
                android:layout_toRightOf="@+id/button2"
                android:layout_toEndOf="@+id/button2" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="in command"
                android:id="@+id/textView4"
                android:layout_above="@+id/button4"
                android:layout_alignLeft="@+id/textView3"
                android:layout_alignStart="@+id/textView3" />

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/imageView"
                android:src="@drawable/wheel1"
                android:contentDescription="test"
                android:layout_marginTop="30dp"
                android:layout_alignBottom="@+id/button"
                android:layout_toLeftOf="@+id/button7"
                android:layout_toStartOf="@+id/button7" />

            <ImageView
                android:layout_width="25dp"
                android:layout_height="25dp"
                android:id="@+id/button7"
                android:background="@drawable/red"
                android:clickable="false"
                android:layout_marginTop="7dp"
                android:layout_marginRight="7dp"
                android:layout_marginEnd="7dp"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true" />

        </RelativeLayout>

        <ListView
            android:id="@+id/left_drawer"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:background="#ffffff"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp" />

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

</RelativeLayout>

您的内容需要放在DrawerLayout内,您打算通过FrameLayout将内容放在Fragment内,但为了快速解决问题,上述布局应该对您有用

答案 1 :(得分:2)

您必须将抽屉布局作为父布局,并且相对布局应该是drawerlayout中的子项。这样做

<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"
xmlns:tools="http://schemas.android.com/tools"

 >

<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:background="#ffffff"
    android:choiceMode="singleChoice"
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp" />

<RelativeLayout     android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="@color/icons"
android:focusableInTouchMode="true">


<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rl">

<Button
    android:layout_width="60dp"
    android:layout_height="wrap_content"
    android:id="@+id/button"
    android:drawableTop="@drawable/fan_blade1"
    android:drawablePadding="-20dp"
    android:textColor="#ffffff"
    android:background="@drawable/btn_black"
    android:layout_marginLeft="30dp"
    android:layout_marginStart="30dp"
    android:layout_below="@+id/button7"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<SeekBar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/button"
    android:layout_marginTop="30dp"
    android:layout_marginEnd="30dp"
    android:layout_marginRight="30dp"
    android:layout_alignLeft="@+id/button"
    android:layout_alignStart="@+id/button"
    android:id="@+id/seekBar"
    android:thumb="@drawable/seek_thumb"
    android:progressDrawable="@drawable/progressbr"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textView5"
    android:text="speed"
    android:layout_alignTop="@+id/button2"
    android:layout_alignRight="@+id/imageView"
    android:layout_alignEnd="@+id/imageView" />

<Button
    android:layout_width="60dp"
    android:layout_height="wrap_content"
    android:text="S1"
    android:id="@+id/button2"
    android:textColor="#ffffff"
    android:background="@drawable/btn_black"
    android:layout_below="@+id/seekBar"
    android:layout_alignLeft="@+id/seekBar"
    android:layout_alignStart="@+id/seekBar"
    android:layout_marginTop="30dp" />

<Button
    android:layout_width="60dp"
    android:layout_height="wrap_content"
    android:text="S2"
    android:id="@+id/button3"
    android:textColor="#ffffff"
    android:background="@drawable/btn_black"
    android:layout_below="@+id/button2"
    android:layout_alignLeft="@+id/button2"
    android:layout_alignStart="@+id/button2"
    android:layout_marginTop="30dp" />

<Button
    android:layout_width="60dp"
    android:layout_height="wrap_content"
    android:text="S3"
    android:id="@+id/button4"
    android:textColor="#ffffff"
    android:background="@drawable/btn_black"
    android:layout_below="@+id/button3"
    android:layout_alignLeft="@+id/button3"
    android:layout_alignStart="@+id/button3"
    android:layout_marginTop="30dp" />

<Button
    android:layout_width="60dp"
    android:layout_height="wrap_content"
    android:drawablePadding="-20dp"
    android:id="@+id/button5"
    android:textColor="#ffffff"
    android:drawableTop="@drawable/shutdown_icon1"
    android:background="@drawable/btn_black"
    android:layout_below="@+id/button4"
    android:layout_alignLeft="@+id/button4"
    android:layout_alignStart="@+id/button4"
    android:layout_marginTop="30dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="out command"
    android:id="@+id/textView3"
    android:layout_marginLeft="20dp"
    android:layout_marginStart="20dp"
    android:layout_above="@+id/button3"
    android:layout_toRightOf="@+id/button2"
    android:layout_toEndOf="@+id/button2" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="in command"
    android:id="@+id/textView4"
    android:layout_above="@+id/button4"
    android:layout_alignLeft="@+id/textView3"
    android:layout_alignStart="@+id/textView3" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView"
    android:src="@drawable/wheel1"
    android:contentDescription="test"
    android:layout_marginTop="30dp"
    android:layout_alignBottom="@+id/button"
    android:layout_toLeftOf="@+id/button7"
    android:layout_toStartOf="@+id/button7" />

<ImageView
    android:layout_width="25dp"
    android:layout_height="25dp"
    android:id="@+id/button7"
    android:background="@drawable/red"
    android:clickable="false"
    android:layout_marginTop="7dp"
    android:layout_marginRight="7dp"
    android:layout_marginEnd="7dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />