由于保证金,Android中主要内容以上的灰色背景

时间:2016-12-20 15:33:55

标签: android xml android-layout

由于我在下面的XML设置为ActionBar高度的边距,我似乎无法摆脱这个灰色条。最终会出现一个动作栏但透明,但如何从一开始就摆脱这个灰色背景?如果我使用paddingTop,那么我的操作栏不可点击。

enter image description here

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

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/transparent"
        android:orientation="vertical">

        <include
            android:id="@+id/action_bar"
            layout="@layout/action_bar" />

    </RelativeLayout>

    <FrameLayout
        android:layout_marginTop="?attr/actionBarSize"
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ListView android:id="@+id/left_drawer"
        android:background="#FFFFFF"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="left|start"
        android:choiceMode="singleChoice"/>
</android.support.v4.widget.DrawerLayout>

2 个答案:

答案 0 :(得分:0)

RelativeLayout父级用于抽屉内的所有其他布局。 并将FrameLayout设置为保持在appBar下方,如下所示:

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

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:id="@+id/action_bar_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/transparent"
            android:orientation="vertical">

            <include
                android:id="@+id/action_bar"
                layout="@layout/action_bar" />

        </RelativeLayout>

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

        <ListView android:id="@+id/left_drawer"
            android:background="#FFFFFF"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="left|start"
            android:choiceMode="singleChoice"/>

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

这应该可行,只有在可见的情况下才应将框架布局移动到操作栏下方!

答案 1 :(得分:0)

This可以帮助你...... 或尝试添加自定义工具栏...使用下面的内容制作单独的布局文件

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/gradient"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

</android.support.design.widget.AppBarLayout>

` 并在抽屉布局中包含include标记...通过findViewById(...)获取工具栏并使用setSupportActionBar(工具栏工具栏)方法设置它。