android - NavigationView headerlayout 不滚动

标签 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 完全滚动,但我被困在这里。

我做错了什么?

EDIT-1

Java 代码 fragment :

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

最佳答案

你需要做两件事。

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

  2. 在运行时在导航 View 中扩充标题。

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

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

关于android - NavigationView headerlayout 不滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34716266/

相关文章:

android从 Activity 到 fragment 传递和检索额外内容

android - 是否有与 RecyclerView 等效的 addHeaderView?

java - RxJava : How to send some additional info to subscriber

android - 拍照并对其进行地理标记

java - 如何在Android中备份备忘录和任务

android - 将 android datepicker 最短日期设置为特定日期

java - 谷歌地图 API。投影

java - Java 中的 Raspberry pi 3 蓝牙 : my BufferedReader hangs when receiving lots of data

android - 最简单的是/否对话框 fragment

android - 如何从android中的另一个应用程序获取文本?