2013-06-17 2 views
14

У меня есть панель навигации с 10 вариантами Вариант № 5 shoudl имеют еще 7 вариантов (например, субменю) некоторого вида, который является расширяемой/разборныеAndroid: панель навигации SubMenu: Как разборную элементы навигации

Как я создать «разборные элементы навигации», как это описано здесь: http://developer.android.com/design/patterns/navigation-drawer.html#Content

+0

Это ExpandableListView, вы можете добавить ребенка только к родителю 5. – Milan

+0

@Milanix На самом деле мне нужно добавить детей Родитель 5 & Родитель 7, что не представляется возможным? –

+0

Так в чем проблема? Используйте ExplandableListView, как было сказано ранее. – Milan

ответ

17

Вот пример приложения, которое делает его:

PrashamTrivedi/DrawerLayoutTest

@Override 
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) 
    { 
     if (convertView == null) 
     { 
      LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = layoutInflater.inflate(R.layout.drawer_group_item,parent,false); 
     } 

     ((TextView) convertView).setText(groupItem.get(groupPosition)); 
     convertView.setTag(groupItem.get(groupPosition)); 
     return convertView; 
    } 

@Override 
    public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) 
    { 
     tempChild = (ArrayList<String>) children.get(groupPosition); 
     TextView text = null; 

     if (convertView == null) 
     { 
      LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = layoutInflater.inflate(R.layout.drawer_submenu_item,parent,false); 
     } 

     text = (TextView) convertView; 
     text.setText(tempChild.get(childPosition)); 

     convertView.setTag(tempChild.get(childPosition)); 
     return convertView; 
} 

И вы должны создать новые XML-файлы в папке макета (подсказка: создать два, один для просмотра группы и другие для подменю)

После того, как ваша боковая навигация должна выглядеть так:

Snapshot of drawer submenu view

EDIT: Simple Navigational Drawer Layout in Android

+0

Но после того, как я импортировал ваше проектное решение в свое рабочее пространство, я не смог выбрать элемент под пунктом 4. Есть ли у вас какие-либо идеи? –

+0

Ну, как я помню, образец проекта не был полностью совместим с обратной связью, что означает, что у него есть версия min-sdk 11. Если вы использовали приложение в старых устройствах, которые имеют до Honeycomb API, это может быть причиной. Если нет, рассмотрите совет, который я сказал: «Вам нужно создать новые файлы xml в папке макета (подсказка: создать два, один для группового просмотра и другие для подменю) _». – CagCak

+0

Ссылка не работает! – transistor

Смежные вопросы