2015-10-21 4 views
10

NavigationViewの下部にボタンを追加するには、投稿"Android design library NavigationView with footer"に従っています。問題は最後のNavigationViewだけが表示され、画面の高さ全体を占めていることです。ここでNavigationViewでフッタボタンを追加するには

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <!-- Activity here --> 

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

     <android.support.design.widget.NavigationView 
      android:id="@+id/navigation_menu_view" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_gravity="top" 
      app:menu="@menu/menu_drawer"/> 

     <android.support.design.widget.NavigationView 
      android:id="@+id/navigation_footer_view" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom" 
      app:menu="@menu/menu_drawer_footer"/> 

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

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

結果である:ここで

は私のレイアウトである

enter image description here

がどのように私はこの問題を解決することができますか?

+0

。特に、NavigationViewはListViewの代わりに内部的にRecyclerViewを使用するようになりました。このトリックはもう機能しない可能性があります。ライブラリの古いビルドを使って試してみてください。 – Brucelet

+0

@ Brucelet、別の解決策を知っていますか? –

+1

23.0.1でこのトリックが動作し、23.1で動作しない –

答えて

11

ウェイトと余白あなたは上部と下部たいアイテムの数に応じて、追加または微調整する必要があるかもしれないが、これはあなたが探しているものでなければなりません:

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

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

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_drawer" 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_gravity="top" 
     android:layout_weight="8" 
     app:menu="@menu/drawer" /> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_drawer_bottom" 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:layout_weight="2" 
     android:layout_gravity="bottom" 
     app:menu="@menu/drawer_footer" /> 
    </LinearLayout> 
</android.support.design.widget.NavigationView> 

・ホープこのことができます:)

+5

内側のNavigationViewsに 'app:elevation = 0dp'を設定する必要があります。そうしないと、フッターに奇妙な勾配の背景があります。フッターのスクロール効果を取り除く方法がない限り、フッター内の単純なTextViewを使用します。しかし、それは良い解決策です。 – headsvk

13

最も簡単な答えは

ほど簡単navigationview.xmlに下に重力を引き出しレイアウト内のボタンを追加し、それを設定することです!ここにコードがあります。ブログは数ヶ月であり、設計サポートライブラリがその時間内にいくつかの更新があったことを

<android.support.design.widget.NavigationView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/navigation" 
    android:layout_width="200dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    app:headerLayout="@layout/navigation_header" 
    app:menu="@menu/menu_navigation" 
    android:layout_alignParentTop="true"> 

    <Button 
     android:id="@+id/btn_sing_in" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:text="@string/sign_in" 
     android:layout_gravity="bottom" 
     /> 
</android.support.design.widget.NavigationView> 

add button inside Drawer layour

+0

ボタンがネガティブ項目を隠している – Andrain

+0

それを見るためにスクロール –

関連する問題