2016-06-14 98 views
1

我的主要活动布局选项卡uptil现在看起来是这样的:必须包括导航抽屉

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

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

     <LinearLayout 
      android:id="@+id/container_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical"> 

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

     </LinearLayout> 

     <FrameLayout 
      android:id="@+id/container_body" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" > 
     </FrameLayout> 

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

      <android.support.v4.view.ViewPager 
       android:id="@+id/viewpager" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       app:layout_behavior="@string/appbar_scrolling_view_behavior" > 
      </android.support.v4.view.ViewPager> 

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


    </LinearLayout> 

    <fragment 
     android:id="@+id/fragment_navigation_drawer" 
     android:name="android.mybitchinapp.com.testgui.activity.FragmentDrawer" 
     android:layout_width="@dimen/nav_drawer_width" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     app:layout="@layout/fragment_navigation_drawer" 
     tools:layout="@layout/fragment_navigation_drawer" > 
    </fragment> 

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

我需要包括TabLayout以提供选项卡的应用程序。我不知道如何包含它。我试图添加一个AppBarLayout(它将包含TabLayout),但它导致应用程序崩溃。所以它显然不是一个解决方案。我如何编辑它以使其具有TabLayout? 需要的最终产品是: enter image description here

矿看起来像这样: enter image description here

也就是说,它有碎片和Tha导航抽屉。唯一缺少的是实际的选项卡。

+0

https://developer.android.com/reference/android/support/design/widget /TabLayout.html – Karakuri

+0

我已经明白我需要一个TabLayout。我只想知道我应该把它放在我的布局中。直接将它放入DrawerLayout会导致应用程序崩溃。 –

回答

3

XML布局显得扑朔迷离。所以我编辑了你的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.support.design.widget.CoordinatorLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:app="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/main_content" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true"> 

      <android.support.design.widget.AppBarLayout 
       android:id="@+id/appbar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:paddingTop="@dimen/appbar_padding_top" 
       android:theme="@style/AppTheme.AppBarOverlay"> 

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

       <android.support.design.widget.TabLayout 
        android:id="@+id/tabs" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" /> 

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

      <android.support.v4.view.ViewPager 
       android:id="@+id/viewpager" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

      <fragment 
       android:id="@+id/fragment_navigation_drawer"   
       android:layout_width="@dimen/nav_drawer_width" 
       android:layout_height="match_parent" 
       android:layout_gravity="start" 
       app:layout="@layout/fragment_navigation_drawer" 
       tools:layout="@layout/fragment_navigation_drawer" > 
      </fragment> 

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

参考:http://hmkcode.com/material-design-app-android-design-support-library-appcompat/

+1

感谢您的来源。 –

0

在您当前的布局中,您可以在包含工具栏后添加TabLayout

<!-- snip --> 
<LinearLayout 
    android:id="@+id/container_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

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

    <android.support.design.widget.TabLayout 
     android:layout_width="match_parent" 
     android:layout_height="some_size" /> 

</LinearLayout> 
<!-- snip --> 
+0

这导致应用程序在安装时崩溃:/ –

+0

@leehuang在你的帖子中包含你在_code_和堆栈跟踪中所做的事情会对你有所帮助。我们不是通灵者:/ – Karakuri