바닥 글 설정 및 프로필 항목을 어떻게 설정할 수 NavitationView있습니까? 이메일 탐색 창으로받은 편지함처럼 보입니다. NavitationView항목은 메뉴 리소스에 의해 팽창되는,하지만 난 메뉴 리소스에 아래 항목을 설정하는 방법 또는 내가에 사용자 정의보기를 설정할 수있는 방법을 모르는 NavigationView또는 하단 오프셋을? 나는 이것을 <LinearLayout...>바닥 글보기로 두려고 시도 했지만 작은 화면에서 바닥 글이 항목 위에 놓이고 메뉴를 스크롤 할 수 없으며 바닥 글 패딩을로 설정하려고 시도했지만 바닥 글도 패딩을 사용 NavigationView합니다.
이것은 작은 화면에서 스크롤되지 않습니다.
<android.support.design.widget.NavigationView
    android:id="@+id/drawer"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/kuona_drawer_header"
    app:menu="@menu/drawer">
    <LinearLayout...>
</android.support.design.widget.NavigationView>

이것은 스크롤되지만 바닥 글은 메뉴 항목 위에 있습니다.
<android.support.design.widget.NavigationView
    android:id="@+id/drawer"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:paddingBottom="96dp"
    app:headerLayout="@layout/kuona_drawer_header"
    app:menu="@menu/drawer">
    <LinearLayout...>
</android.support.design.widget.NavigationView>
서랍 메뉴 res/menu/drawer.xml파일 :
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/action_current_list"
            android:checked="true"
            android:icon="@drawable/ic_current_list"
            android:title="@string/current_list" />
        <item
            android:id="@+id/action_manage_lists"
            android:icon="@drawable/ic_my_lists"
            android:title="@string/my_lists" />
        <item
            android:id="@+id/action_search_products"
            android:icon="@drawable/ic_search_black_24dp"
            android:title="@string/search_products" />
        <item
            android:id="@+id/action_deals"
            android:icon="@drawable/ic_product_promo"
            android:title="@string/deals" />
    </group>
</menu>
답변
내비게이션 메뉴에 고정 된 (비 스크롤링) 바닥 글을 원하는 경우 게시 한 것처럼 다른 레이아웃 주위에 NavigationView를 래핑해야합니다. NavigationView는 FrameLayout처럼 작동하므로 결국 NavigationView 메뉴 항목 위에 내부 레이아웃이 “스택”됩니다. 바닥 글 항목에 LinearLayout을 사용하여 정렬하는 한 가지 방법은 다음과 같습니다.
고정 바닥 글
<android.support.design.widget.NavigationView
    android:id="@+id/drawer"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/drawer_header"
    app:menu="@menu/drawer">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:clickable="true"
        android:orientation="vertical">
        <TextView
            android:id="@+id/footer_item_1"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:gravity="center"
            android:text="Footer Item 1" />
        <TextView
            android:id="@+id/footer_item_2"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:gravity="center"
            android:text="Footer Item 2" />
    </LinearLayout>
</android.support.design.widget.NavigationView>
이 예제에서는 TextViews를 사용했지만 바닥 글보기에 원하는대로 사용할 수 있습니다. 바닥 글 항목이 메뉴 하단과 겹치지 않도록하려면 메뉴 리소스 파일 끝에 더미 항목을 추가합니다 ( “spacers”처럼 작동 함).
res / menu / drawer.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group>
        <item
            android:id="@+id/nav_item_1"
            android:icon="@drawable/ic_nav_item_1"
            android:title="Nav Item 1" />
        <item
            android:id="@+id/nav_item_2"
            android:icon="@drawable/ic_nav_item_2"
            android:title="Nav Item 2" />
        <item
            android:id="@+id/nav_item_3"
            android:icon="@drawable/ic_nav_item_3"
            android:title="Nav Item 3" />
        <item
            android:id="@+id/nav_item_4"
            android:icon="@drawable/ic_nav_item_4"
            android:title="Nav Item 4" />
        <item
            android:id="@+id/footer_spacer_1"
            android:checkable="false"
            android:enabled="false"
            android:orderInCategory="200"
            android:title="" />
        <item
            android:id="@+id/footer_spacer_2"
            android:checkable="false"
            android:enabled="false"
            android:orderInCategory="200"
            android:title="" />
    </group>
</menu>
마지막으로 실제 바닥 글보기를 위해 활동에 클릭 리스너를 추가하는 것을 잊지 마십시오.
...
// Click listener for nav footer.
View navFooter1 = findViewById(R.id.footer_item_1);
navFooter1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // Do footer action
    }
});
View navFooter2 = findViewById(R.id.footer_item_2);
navFooter2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // Do footer action
    }
});
...
바닥 글 스크롤
바닥 글이 NavigationView의 나머지 부분과 함께 스크롤되도록 허용하면 작업이 더 간단 해집니다 (추가 레이아웃 또는 클릭 리스너 없음). 메뉴 리소스 파일에 고유 항목으로 바닥 글 항목을 추가하기 만하면 <group>(이렇게하면 구분선이 생성됨 ) 모든 항목이 자동으로 처리되고 함께 스크롤됩니다.
res / menu / drawer.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:id="@+id/nav_menu">
        <item
            android:id="@+id/nav_item_1"
            android:icon="@drawable/ic_nav_item_1"
            android:title="Nav Item 1" />
        <item
            android:id="@+id/nav_item_2"
            android:icon="@drawable/ic_nav_item_2"
            android:title="Nav Item 2" />
        <item
            android:id="@+id/nav_item_3"
            android:icon="@drawable/ic_nav_item_3"
            android:title="Nav Item 3" />
        <item
            android:id="@+id/nav_item_4"
            android:icon="@drawable/ic_nav_item_4"
            android:title="Nav Item 4" />
    </group>
    <group android:id="@+id/nav_footer">
        <item
            android:id="@+id/nav_footer_1"
            android:icon="@drawable/ic_footer_item_1"
            android:title="Footer Item 1" />
        <item
            android:id="@+id/nav_footer_2"
            android:icon="@drawable/ic_footer_item_2"
            android:title="Footer Item 2" />
    </group>
</menu>
답변
해결 방법에 대한 힌트를 제공하지만 NavigationView에서 테스트 할 기회가 없으며 제대로 작동 할 것이라고 확신합니다.
여기 샘플 레이아웃 xml;
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:clipToPadding="false"
  android:paddingBottom="96dp">
  <TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#6F00" />
  <TextView
    android:layout_width="match_parent"
    android:layout_height="96dp"
    android:layout_gravity="bottom"
    android:layout_marginBottom="-96dp"
    android:background="#600F" />
</FrameLayout>
결과는 다음과 같습니다.
트릭은 부모에 패딩을 적용하고 자식에 여백을 빼는 것입니다.
빠른 시도 :
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.NavigationView xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layout_gravity="start"
  android:clipToPadding="false"
  android:paddingBottom="96dp"
  app:headerLayout="@layout/sample_header"
  app:menu="@menu/sample_menu">
  <TextView
    android:layout_width="match_parent"
    android:layout_height="96dp"
    android:layout_gravity="bottom"
    android:layout_marginBottom="-96dp"
    android:background="#600F"
    android:gravity="center"
    android:text="I STAND BY MY SELF" />
</android.support.design.widget.NavigationView>
답변
내비게이션 뷰 중첩의 다른 답변에 설명 된 접근 방식에 따라 몇 가지 문제가 발생했습니다.
- 항목이 많거나 가로 모드에서 바닥 글이 메뉴 항목과 겹침
 - 실제 메뉴에 항목이 많으면 중첩 된 NavigationView가 스크롤 가능 해져서보기 좋지 않았습니다.
 - 중첩에 두 개의 NavigationView가 있으므로 사용자 지정보기를 바닥 글로 정의 할 수 없습니다.
 - 중첩 된 스크롤 뷰의 처리는 엉망이었습니다 (때로는 두 개의 스크롤바가 나타났습니다 등).
 - 고정 바닥 글은 항상 맨 아래에 있어야합니다 (메뉴 항목이 많거나 적음).
 
이 모든 문제에 대한 나의 해결책은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout ...>
    <include layout="@layout/main_content"/>
    <android.support.design.widget.NavigationView ...>
        <android.support.v4.widget.NestedScrollView
            ...
            android:fillViewport="true"
            android:scrollbars="vertical">
            <LinearLayout
                ...
                android:orientation="vertical">
                <android.support.design.widget.NavigationView
                    ...
                    app:elevation="0dp"
                    app:headerLayout="@layout/nav_header"
                    app:menu="@menu/nav_menu">
                </android.support.design.widget.NavigationView>
                <LinearLayout
                    android:id="@+id/spacer_to_bottom"
                    ...
                    android:layout_height="0dp"
                    android:layout_weight="1">
                </LinearLayout>
                <include layout="@layout/nav_footer"></include>
            </LinearLayout>
        </android.support.v4.widget.NestedScrollView>
    </android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
여기에서 NestedScrollView는 하위 NavigationView의 스크롤 부모 역할을합니다. 즉, sub-NavigationView는 스크롤바 자체를 표시하지 않지만 전체 콘텐츠는 평면 방식으로 표시됩니다.
‘spacer_to_bottom’레이아웃은 나머지 공간을 모두 채우므로 메뉴 아이콘이 거의 없어도 바닥 글이 여전히 맨 아래에 있습니다.
마지막으로 고정 바닥 글은 실제 메뉴 (sub-NavigationView), 스페이서로 시작하는 선형 레이아웃에 추가되며 바닥 글 하단에 있습니다.
여기에서 AndroidStudio-Project로 작동하는 전체 예제를 찾을 수 있습니다. https://github.com/MarcDahlem/AndroidSidemenuFooterExample
특히 탐색 창은 여기에서 찾을 수 있습니다 :
 https://github.com/MarcDahlem/AndroidSidemenuFooterExample/blob/master/app/src/main/res/layout/activity_main.xml
스크린 샷 :
답변
가장 간단한 대답은 서랍 레이아웃 내부에 버튼을 추가하고 중력을 하단으로 설정하는 것입니다. navigationview.xml .
다음은 코드입니다.
<?xml version="1.0" encoding="utf-8"?>
<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">
     <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>
답변
컨테이너 탐색보기 레이아웃이 있어야하며 여기에 두 개의 탐색 레이아웃이 더 있어야합니다. 부모 레이아웃의 상단과 하단에 정렬합니다.
기본적으로 ScrimFrameLayout이고 상태 표시 줄과 더 잘 상호 작용하므로 FrameLayout이 아닌 탐색보기를 부모로 사용하는 것이 좋습니다.
다음은 활동의 예입니다.
<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/layout_dashboard"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainActivity">
<!-- Activity content goes here -->
<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">
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_drawer"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="top"
        app:menu="@menu/menu_navigation_drawer" />
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_drawer_bottom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        app:menu="@menu/menu_navigation_drawer_bottom" />
</android.support.design.widget.NavigationView>
이에 대해 자세히 알아보고 여기에서 예제를 볼 수 있습니다. http://blog.nitish.io/post/122633295558/android-design-library-navigationview-with-top
답변
늦은 답변을 알고 있지만 대부분의 개발자가 찾고있는 완벽하고 정확한 답변입니다.
내비게이션보기에 바닥 글을 추가하려면 아래와 같이 내비게이션 메뉴에 사용자 정의보기를 추가합니다.
footer_navigation_menu.xml
<?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"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <android.support.v7.widget.AppCompatTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="@string/version" />
    <android.support.v7.widget.AppCompatTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:gravity="right" />
</RelativeLayout>
이제 위의 뷰를 그룹 속성으로 메뉴 xml에 추가하여 메뉴에서 푸터로 구분할 수 있습니다.
profile_menu.xml
<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_support"
        android:title="@string/nav_item_support" />
    <item
        android:id="@+id/nav_settings"
        android:title="@string/nav_item_settings" />
    <item
        android:id="@+id/nav_log_out"
        android:title="@string/nav_item_log_out" />
</group>
<group
    android:id="@+id/nav_footer">
    <item
        android:id="@+id/nav_log_version"
        app:actionLayout="@layout/footer_navigation_menu" />
</group>
그게 다야. 다음은 출력입니다.
답변
NavigationView에 바닥 글을 추가 할 수있는 규정이 없다는 것은 일종의 당황스러운 일입니다. 하지만 이런 식으로 시도해 볼 수 있습니다.
<?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_base"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view_container"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:fitsSystemWindows="false"
        android:layout_gravity="start"
        >
        <android.support.design.widget.NavigationView
            android:id="@+id/nav_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scrollbarAlwaysDrawVerticalTrack="true"
            android:scrollbars="vertical"
            android:isScrollContainer="true"
            app:headerLayout="@layout/nav_header_base"
            app:menu="@menu/activity_base_drawer"
            android:layout_gravity="top"
            android:layout_marginBottom="x"
            />
        <android.support.design.widget.NavigationView
            android:id="@+id/nav_view_footer"
            android:layout_width="wrap_content"
            android:layout_height="x"
            app:headerLayout="@layout/hear_layout"
            app:menu="@menu/menu_items"
            android:scrollbars="none"
            android:layout_gravity="bottom"
            />
    </android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
바닥 글이 목록 인 경우
    app:headerLayout="@null"
    app:menu="@menu/activity_base_drawer_footer"
하지만 어떤 종류의 커스텀 뷰라면
    app:headerLayout="@layout/my_cutom_footer_view"
    app:menu="@null"
또한이 경우에는 x = height of your custom footer view
도움이 되었기를 바랍니다.