当前位置: 首页 > 知识库问答 >
问题:

固定导航抽屉中的导航标题,而滚动通过项目

白博赡
2023-03-14

当前状态:带有NavigationHeader和NavigationMenu项的NavigationDrawer。项目数量很大,因此需要滚动才能访问底部的项目。

要求:向下滚动到底部时,NavigationHeader应保持固定

这是我的活动\u主布局文件

<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"
    android:background="#00000000"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer"
    />

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

这是我的导航\u标题\u主布局文件

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="vertical"
android:background="#3d3b3b"

android:theme="@style/ThemeOverlay.AppCompat.Dark">

<android.support.v7.widget.AppCompatImageView
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:src="@drawable/categories"
    android:padding="1dp"
    />

</RelativeLayout>

另外,我是android开发新手。如果需要,请请求更多资源

共有3个答案

巫马望
2023-03-14

嘿,伙计们,我已经为nav_drawer想出了一个解决方案,以及我们如何在不编写任何额外代码的情况下实现静态nav_drawer。

我正在分享我目前正在进行的项目的git链接。谢谢以下是活动的主要内容。xml文件,我使用了导航视图菜单

    <?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_main_bg_shape"
        android:orientation="vertical">

        <Button
            android:id="@+id/whats_cool"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="260dp"
            android:layout_marginTop="400dp"
            android:background="@drawable/buttonshape"
            android:fontFamily="@font/delius_unicase"
            android:shadowColor="#362802"
            android:shadowDx="4"
            android:shadowDy="3"
            android:shadowRadius="10"
            android:text="What's Cool"
            android:textColor="#003931"
            android:textSize="12sp" />

    </LinearLayout>


    <android.support.design.widget.NavigationView
        app:headerLayout="@layout/nav_header"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="@color/gray_white"
        app:menu="@menu/nav_drawer"
        android:layout_gravity="start"
        app:itemTextColor="@color/darkBlue"
        app:itemIconTint="@color/darkBlue"
        >
    <include layout="@layout/nav_header"/>

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

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

您不需要对标题布局和nav_drawer进行任何更改。

麹承
2023-03-14

我知道这个问题太老了,但我分享了一个适合我的解决方案:

1.将导航头主视图放置在导航视图内

<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:menu="@menu/activity_main_drawer" >

    <include layout="@layout/nav_header_main"/>

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

2.在@menu/activity\u main\u抽屉文件中添加一些适合页眉高度的空项

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:enabled="false"
          android:title=" " />
    <item android:enabled="false"
          android:title=" " />
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/home"
            android:title="@string/home" />
        ......
    </group>
</menu>        
郎欣然
2023-03-14

找到了一个解决办法。绝对不是最有效的。请建议是否可以从这里做些什么。

<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"
  android:background="#00000000"
  app:headerLayout="@layout/nav_header_main"
  app:menu="@menu/activity_main_drawer">

 <include layout="@layout/nav_header_main"

 <android.support.design.widget.NavigationView>

绝对有效。但是标题布局是多余的

 类似资料:
  • 问题内容: 我有一个2活动和一个服务,首先我有导航抽屉,并且标题中有2个textview,有时我必须更改它们的文本,在服务中我需要一些数据。 第一次运行时一切都很完美,但是当我从第二个转到第一个活动,我在textviews中有nullpointerexception。是什么原因造成的,以及如何解决? 和 和 错误 问题答案: 要在Navigation Drawer的标题中成功找到任何小部件,您需要

  • 实际上,我正在我的应用程序中使用新的架构组件,并且我已经设置了导航组件。我有一个导航抽屉,我想用它。我已经设置好了,但我面临一些问题: 1-抽屉不会自动关闭。菜单正常工作并导航到正确的位置,但导航后不会关闭。我必须添加一个目的地ChangedListener才能自己关闭它。 在代码实验室里,抽屉自动关闭,我真的不明白为什么。 2-向上按钮打开抽屉。当我导航到非顶级片段时,菜单图标变为向上箭头,但当

  • 虽然我一直在四处寻找,但找不到正确的答案。在我的抽屉菜单头,我为用户提供了他的图像和姓名,但我也允许用户从应用程序中更改他/她的姓名和图像。这些更改存储在会话管理器中。现在我想在我的抽屉菜单头反映这些更改。一切都很好,因为当我关闭应用程序并再次运行它时,它显示了更改。所以现在我需要的是一种刷新抽屉菜单头的方法。 从配置文件片段中的库中选择图像。 主页活动

  • 我是android新手。我想实现一个由项目列表组成的导航抽屉,单击它会打开一个新活动。基本上是所有活动的导航抽屉。当我从导航抽屉中选择一个项目时,特定的活动就会打开。导航抽屉代码是通过执行空活动来实现的。我想在所有活动中实现导航抽屉功能,这些活动被视为空活动,这些活动已经有了一些功能,导航抽屉功能也可以工作。请帮帮我。 这是activity_header档案 这是我的主要活动 这是头活动java代

  • 有人能告诉我如何创建活动到这个主要活动,导航抽屉将看到在所有他们?我需要使用这个特定的MainActivity代码。我不需要使用碎片,只要3个简单的活动将添加到这个抽屉。 NavDrawer布局:

  • 二等 三等