NavigationView headerlayout不滚动

时间:2016-01-11 07:34:18

标签: android

我有一个简单的问题!我被困在上面了。我已经看到了很多答案,并尽我所能。

这是我的DrawerLayout

<?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:context=".BaseNavDrawerActivity">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

<include
    android:id="@+id/toolbar"
    layout="@layout/layout_toolbar" />
</android.support.design.widget.AppBarLayout>

<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:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_drawer_header_layout"
    app:itemBackground="@color/white"
    app:itemTextColor="@color/nav_text_color_selector"
    app:itemIconTint="@color/nav_text_color_selector"
    app:menu="@menu/nav_drawer" />
 </android.support.v4.widget.DrawerLayout>

这是我的nav_drawer_header_layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="200dp"
android:gravity="bottom"
android:background="@drawable/drawer_cover">

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/google_logo"
    android:id="@+id/image_account"
    android:scaleType="centerCrop"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="16dp"
    android:layout_marginStart="16dp"
    android:layout_marginTop="17dp" />

<Spinner
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/spinner_accounts_list"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="10dp"
    android:spinnerMode="dropdown"
    android:layout_marginLeft="18dp"
    android:layout_marginStart="18dp"
    android:layout_marginEnd="22dp"
    android:layout_marginRight="22dp" />
</RelativeLayout>

当我滚动NavigationDrawer时,只有NavigationView滚动但headerlayout(nav_drawer_header_layout)仍然保持不动并且根本不滚动。

我知道DrawerLayout完全滚动但我被困在这里。

我做错了什么?

修改-1

Java code snippet:

mNavViewHeaderLayout = LayoutInflater.from(EmailActivity.this).inflate(R.layout.nav_drawer_header_layout, mNavigationView);
    mSpinnerAccounts = (Spinner)mNavViewHeaderLayout.findViewById(R.id.spinner_accounts_list);

1 个答案:

答案 0 :(得分:2)

你需要做两件事。

  1. 从您的NavigationView中删除app:headerLayout="@layout/nav_drawer_header_layout"

  2. 在运行时在导航视图中填充标题。

    查看headerLayout = navigationView.inflateHeaderView(R.layout.nav_header_home);

    TextView txtContact = (TextView) headerLayout.findViewById(R.id.txtContact);
    
    TextView  txtHeaderLogoName = (TextView) headerLayout.findViewById(R.id.txtHeaderLogoName);