2016-12-27 3 views
0

私はこのライブラリを使用しています:https://github.com/mikepenz/MaterialDrawer 私は、ナビゲーションアイテムを残し、私は追加の引き出しを持っている右の上NavigationDrawerを持っている:NavigationDrawer内にカスタムフラグメントがありますか?

new DrawerBuilder() 
     .withActivity(this) 
     .withDrawerGravity(Gravity.END) 
     .append(result); 

私もRecyclerViewとフラグメントといくつかの追加のビューを持っています内側:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/listBackground"> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/contactsList" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginLeft="16dp" 
    android:layout_marginRight="16dp" 
    tools:listitem="@layout/fragment_contacts_item" /> 

<LinearLayout 
    android:id="@+id/layoutNoContacts" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_centerVertical="true" 
    android:orientation="vertical" 
    android:paddingBottom="128dp" 
    android:visibility="gone"> 

    <ImageView 
     android:id="@+id/imageView2" 
     android:layout_width="wrap_content" 
     android:layout_height="100dp" 
     android:scaleType="fitCenter" 
     app:srcCompat="@drawable/sad" /> 
</LinearLayout> 

この断片は、レイアウトを膨張しRecyclerViewにエントリを追加します。

これは私のメインのレイアウトです:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 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/main_content" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

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

    <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.v7.widget.Toolbar> 
</android.support.design.widget.AppBarLayout> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentTop="true" 
    android:background="@color/listBackground"> 

    <FrameLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="80dp" 
     android:clickable="true" /> 
</RelativeLayout> 

は、どのように私の代わりにナビゲーション項目のすべての回でNavigationDrawerで私の連絡先を示してこのカスタムフラグメントを表示することができますか?

答えて

2

あなたがすることができますがAndroid Drawer Layoutの代わりMaterialDrawerです。 カスタムの断片で魅力的に機能します。

<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"> 
    <!-- The main content view --> 
    <FrameLayout 
     android:id="@+id/content_frame" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
    <!-- The navigation drawer --> 
    <fragment android:name="com.example.YourFragment" 
     android:id="@+id/left_drawer" 
     android:layout_weight="1" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" /> 
</android.support.v4.widget.DrawerLayout> 
+0

ありがとうございました!メインレイアウトファイルを追加しました。どこに追加する必要がありますか?そして、私はそこにどのようにコンテンツを入れますか?通常のFragmentTransactionを使用するだけですか? – user754730

+1

フラグメントは 'android:name'属性に基づいて静的に追加されます。 – EpicPandaForce

+1

このレイアウトは、引き出しを提示するアクティビティ(アクティビティコンテンツレイアウト)で使用する必要があります。 あなたが動的にフラグメントを追加したい場合 - あなたは<でframeLayoutアンドロイド:ID =「@ + ID/left_drawer」/>でタグの内容を置き換える必要があり、かつ定期的なFragmentTransactionと、このフレームレイアウトにフラグメントを追加します。フラグメントのドキュメントをもっと見る:https://developer.android.com/guide/components/fragments.html –

関連する問題