2017-11-14 18 views
0

サーバーから取得したデータから実行時に動的リストを作成するナビゲーションビューを作成しました。正常に動作し、サーバーとの正常な通信が完了するとリストが表示されます。問題は、私が設定や会社概要などの項目をリストの一番下に追加できないことです。以下のレイアウト(activity_main.xml)リストビュー項目をovershadowingメニュー項目での結果:ナビゲーションビューでメニューとListViewを同時に使用する方法

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

    <include 
     layout="@layout/app_bar_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <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" 
     app:headerLayout="@layout/nav_header_main" 
     app:elevation="@dimen/padding" 
     app:menu="@menu/navigation_items" 

     > 

     <android.support.v7.widget.ListViewCompat 
      android:id="@+id/categories_list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:scrollbars="vertical" 
      android:layout_gravity="center" 
      android:layout_marginStart="@dimen/margin_side" 
      android:layout_marginLeft="@dimen/margin_side" 
      android:layout_marginTop="@dimen/nav_header_height" 
      android:layout_marginBottom="48dp" 
      /> 


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


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

そして、これはnavigation_items.xml(メニューリソース)の内容は次のとおりです。

<menu xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
<group android:id="@+id/nav_bottom" 
    android:orderInCategory="0"> 
    <item 
     android:id="@+id/settings" 
     android:icon="@drawable/settings" 
     android:title="@string/settings" /> 
    <item 
     android:id="@+id/about_us" 
     android:icon="@drawable/info" 
     android:title="@string/about_us" /> 


</group> 
</menu> 

エミュレータの結果以下のとおりである。
enter image description here

+0

あなたは 'app:menu =" @ menu/navigation_items "'の代わりにメニュー項目をリストに追加できません。最初のデフォルトの項目と新しい項目がある場合のリストビューと同様に、リストビューを使用して表示します – Raghunandan

+0

Javaコードを投稿してください。 –

+0

@Raghunandanいいえ、私はその場でリストを作成する必要があります。 – JasonStack

答えて

1

あなたが望むものを達成するための最も簡単な方法は、

です
<com.example.raghu.drawersample.ScrimInsetsRelativeLayout 
    android:layout_width="320dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:background="@android:color/white" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.NavigationView 
     android:layout_alignParentBottom="true" 
     android:id="@+id/nav_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:menu="@menu/activity_main_drawer" /> 

    <android.support.v7.widget.RecyclerView 
     android:layout_above="@+id/nav_view" 
     android:id="@+id/item_list" 
     android:layout_width="320dp" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:scrollbars="vertical" /> 

</com.example.raghu.drawersample.ScrimInsetsRelativeLayout> 

ViewGroupにsetNavigationItemSelectedListenerがない場合、NavigationViewではなく をどのように使用できますか?また、どのようにViewGroupの中にメニュー を埋め込むのですか?

あなたはちょうどあなたがRecyclerViewまたはリストビューを使用するかどうか、あなた件までRelativeLayout

その中にあなたのNavigationViewListView/RecyclerViewをラップしています。通常navigationView.setNavigationItemSelectedListener(this)を使用できます。

は私がrecylerviewするヘッダを追加し、私はステータスバーが正確に以下のPICのように見えると思ったその原因を使用https://github.com/mikepenz/Materialize/blob/develop/library/src/main/java/com/mikepenz/materialize/view/ScrimInsetsRelativeLayout.java

からScrimInsetsRelativeLayoutコードを選びました。あなたは、私は私のリストビューに「設定」を追加すると、他の方法は、あなたの設定を追加することです

良い考えであるかどうかわからないのです

enter image description here

で終わる

あなたのrecyclerviewへのフッターとしてのアイテム。このパターンはGmailで見ることができます。私はなぜそれが良い考えではないか分からない。より多くのアイテムがある場合、ユーザーはまだスクロールする必要があります。

上部の影が下部にあるフッター(設定&ヘルプ)を固定するのは、受信トレイアプリに表示されるものです。

+0

答えをありがとう。 ScrimInsetsRelativeLayout.javaをコードに追加すると、いくつかの未解決の依存関係が発生します。それをどうすれば解決できますか?もう一つの質問ですが、単純なRelativeLayoutを使用できないのはなぜですか? – JasonStack

+0

@JasonStack relativeLayoutを使用できます。私はヘッダーもステータスバーをカバーしたかった。だから私はRelativeLayoutを使用しました。あなたの場合、私はちょうどRelativeLayoutを使用してそのokと思います – Raghunandan

+0

@ JasonStackそれは働いているのですか? – Raghunandan

関連する問題