2016-11-03 167 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