2016-11-03 92 views
2

我有一个简单的应用程序Activity。目前Views与我toolbar重叠:与工具栏重叠的视图

Image of toolbar

我想Views下的toolbar去,没有进去。我该怎么做呢?

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

    <android.support.design.widget.CoordinatorLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" /> 

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

    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="asdasdasdasd"/> 

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

styles.xml:(注意windowDrawsSystemBarBackgrounds)

<resources> 

    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
     <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
     <item name="android:statusBarColor">@android:color/transparent</item> 
    </style> 
</resources> 
+0

'layout_below'? –

+0

您是否试图将您的工具栏移出drawerlayout? – linhtruong

回答

3

不是使用DrawerLayout的正确方法。第一个视图应该包含要显示给用户的内容。稍后您可以添加抽屉。对于您的示例,您可以使用以下内容:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout  
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <android.support.design.widget.CoordinatorLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" /> 

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

    <TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="asdasdasdasd"/> 
</LinearLayout> 

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" /> 

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

这为我解决了一切,谢谢! – gibs

0

把TextView中的CoordinatorLayout里面的工具栏后。这就是活动的主要内容。如果您使用Android Studio模板,它会为您创建一个content_main.xml文件,并且它将会在include那里。

例如,

 <include layout="@layout/content_main" /> 

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

当然,你也可以做到不包括标签,或单独的XML布局是相同的,但如果你这样做是清洁的文件组织。


目前,您已将textview作为DrawerLayout的一部分,并且在展开NavigationView时它可能会移过来。显然,不是你想要的。

+0

我把TextView放到CoordinatorLayout中,它仍然进入工具栏 – gibs