Добавить заголовок раздела в меню ListView

Я хочу сделать меню с некоторыми заголовками разделов. Но исходный код в androidhive (http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/) не поддерживается.

Итак, как добавить заголовок раздела (или сделать пункт меню заголовком раздела) без изменения всего исходного кода? Помогите мне, пожалуйста!

Вот скриншот, я хочу сделать элементы "Блокировка", "Разблокировать" и "Обучение" заголовком раздела: 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 Design по личным причинам

  • Мне нужен заголовок раздела. Я сделал «2 ListView в ящике и добавил заголовок в каждый ListView», но… да, это явно не удалось!


person Chris Maverick    schedule 29.08.2015    source источник


Ответы (3)


Я рекомендую вам использовать эту библиотеку: https://github.com/mikepenz/MaterialDrawer

Здесь вы можете реализовать свой навигационный ящик менее чем за 5 минут.

Вы можете найти там конфигурации для действий с панелью действий, реализовать правое и левое меню и т. д.

Базовая конфигурация:

Зависимость Gradle:

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

Добавьте его в свою активность:

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

Дополнительные настройки можно найти в файле readme или в приведенных примерах.

Я надеюсь, что это поможет вам!

person Juan Aguilar Guisado    schedule 29.08.2015
comment
на самом деле однажды я сделал Material Design NavigationView. Но теперь я не могу им пользоваться! Есть идеи, как добавить заголовок раздела без использования Material Design? - person Chris Maverick; 29.08.2015

Вы можете создать XML-макет menu_layout, содержащий ListView. Добавьте этот XML-макет menu_layout в DrawerLayout. Теперь заполните свое меню в ListView программно. Теперь вы можете создать новый XML-файл header_layout. Добавьте этот header_layout программно в представление заголовка ListView, используя метод addHeaderView().

person Sagar Trehan    schedule 29.08.2015
comment
Добавьте этот XML-макет menu_layout в DrawerLayout. Можете ли вы сказать мне, как я могу это сделать? - person Chris Maverick; 29.08.2015

о, я получил ответ!

Просто добавьте isEnabled() - false и измените макет в определенных позициях в адаптере.

И мой пункт меню изменился на заголовок раздела!

person Chris Maverick    schedule 30.08.2015