在 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();
更新:
由于个人原因无法使用Material设计
我需要的是Header部分。我在抽屉中做了一个“2 ListView 并在每个 ListView 中添加 Header”但是......是的,它显然失败了!
我推荐你使用这个库: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 部分!
我想制作一个包含某些部分 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();
更新:
由于个人原因无法使用Material设计
我需要的是Header部分。我在抽屉中做了一个“2 ListView 并在每个 ListView 中添加 Header”但是......是的,它显然失败了!
我推荐你使用这个库: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 部分!