在 ListView 菜单中添加一个部分 header

Add a section header in ListView Menu

我想制作一个包含某些部分 header 的菜单。 但是androidhive(http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/)中的源码是不支持的

那么如何在不更改整个源代码的情况下添加一个部分 header(或使一个菜单项成为一个部分 header)?请帮助我!

这是截图,我想制作"Lock""Unlock""Learn" 项为第 header 节:http://i.stack.imgur.com/sk1zZ.png

这是我添加项目的方法:

navDrawerItems = new ArrayList<NavDrawerItem>();


    // adding nav drawer items to array

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[8],0));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));       //, true, "22")); để thêm cái đuôi đằng sau

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[9],0));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1)));       //, true, "50+"));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[6], navMenuIcons.getResourceId(6, -1)));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[10], 0));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[7], navMenuIcons.getResourceId(7, -1)));

    // Recycle the typed array
    navMenuIcons.recycle();

更新:

我推荐你使用这个库:https://github.com/mikepenz/MaterialDrawer

在这里,您可以在不到 5 分钟的时间内实现抽屉式导航栏。

您可以在那里找到 Activity 与 ActionBar 的配置,实现左右菜单等。

基本配置为:

Gradle 依赖关系:

compile('com.mikepenz:materialdrawer:4.0.3@aar') {
    transitive = true
}

将其添加到您的 Activity:

new DrawerBuilder().withActivity(this).build();

对于高级设置,您可以按照自述文件或查看给定的示例。

希望对您有所帮助!

您可以创建包含 ListView 的 menu_layout XML 布局。 在 DrawerLayout 中添加此 menu_layout XML 布局。 现在以编程方式在 ListView 中填充菜单。 现在您可以创建一个新的 header_layout XML。 使用 addHeaderView() 方法在 ListView 的 header 视图中以编程方式添加此 header_layout。

哦,我找到答案了!

只需添加 isEnabled() - false 并更改适配器中特定位置的布局。

我的菜单项更改为 header 部分!