Android Design Support Library Secondary Drawer Menu -
i've switched official google design support library. now, want use secondary menu divider this:
but android using menu inflater have no idea now. can add second group, items have same size , there no divider.
drawer.xml:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkablebehavior="single"> <item android:id="@+id/overview" android:checked="true" android:icon="@drawable/ic_action_dashboard" android:title="@string/drawer_overview" /> <item android:id="@+id/social_evening" android:checked="false" android:icon="@drawable/ic_action_brightness_3" android:title="@string/drawer_social_evening" /> <item android:id="@+id/scouting_games" android:checked="false" android:icon="@drawable/ic_action_landscape" android:title="@string/drawer_scouting_games" /> <item android:id="@+id/olympics" android:checked="false" android:icon="@drawable/ic_action_stars" android:title="@string/drawer_olympics" /> <item android:id="@+id/quizzes" android:checked="false" android:icon="@drawable/ic_action_school" android:title="@string/drawer_quizzes" /> </group> </menu>
mainactivity.java:
package net.sutomaji.freizeitspiele; import android.os.bundle; import android.support.design.widget.navigationview; import android.support.v4.app.fragmenttransaction; import android.support.v4.widget.drawerlayout; import android.support.v7.app.actionbardrawertoggle; import android.support.v7.app.appcompatactivity; import android.support.v7.widget.toolbar; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.toast; /** * created tom schneider on 18.06.15 */ public class mainactivity extends appcompatactivity { //defining variables private toolbar toolbar; private navigationview navigationview; private drawerlayout drawerlayout; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); // initializing toolbar , setting actionbar toolbar = (toolbar) findviewbyid(r.id.toolbar); setsupportactionbar(toolbar); //initializing navigationview navigationview = (navigationview) findviewbyid(r.id.navigation_view); //setting navigation view item selected listener handle item click of navigation menu navigationview.setnavigationitemselectedlistener(new navigationview.onnavigationitemselectedlistener() { // method trigger on item click of navigation menu @override public boolean onnavigationitemselected(menuitem menuitem) { //checking if item in checked state or not, if not make in checked state if(menuitem.ischecked()) menuitem.setchecked(false); else menuitem.setchecked(true);q //closing drawer on item click drawerlayout.closedrawers(); //check see item being clicked , perform appropriate action switch (menuitem.getitemid()){ //replacing main content contentfragment our inbox view; case r.id.overview: toast.maketext(getapplicationcontext(), "overview selected", toast.length_short).show(); contentfragment fragment = new contentfragment(); fragmenttransaction fragmenttransaction = getsupportfragmentmanager().begintransaction(); fragmenttransaction.replace(r.id.frame,fragment); fragmenttransaction.commit(); return true; // rest of options show toast on click case r.id.social_evening: toast.maketext(getapplicationcontext(),"se selected",toast.length_short).show(); return true; case r.id.scouting_games: toast.maketext(getapplicationcontext(),"sg selected",toast.length_short).show(); return true; case r.id.olympics: toast.maketext(getapplicationcontext(),"ol selected",toast.length_short).show(); return true; case r.id.quizzes: toast.maketext(getapplicationcontext(),"qz selected",toast.length_short).show(); return true; default: toast.maketext(getapplicationcontext(),"somethings wrong",toast.length_short).show(); return true; } } }); // initializing drawer layout , actionbartoggle drawerlayout = (drawerlayout) findviewbyid(r.id.drawer); actionbardrawertoggle actionbardrawertoggle = new actionbardrawertoggle(this,drawerlayout,toolbar,r.string.opendrawer, r.string.closedrawer){ @override public void ondrawerclosed(view drawerview) { // code here triggered once drawer closes dont want happen leave blank super.ondrawerclosed(drawerview); } @override public void ondraweropened(view drawerview) { // code here triggered once drawer open dont want happen leave blank super.ondraweropened(drawerview); } }; //setting actionbartoggle drawer layout drawerlayout.setdrawerlistener(actionbardrawertoggle); //calling sync state necessay or else hamburger icon wont show actionbardrawertoggle.syncstate(); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.menu_main, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); //noinspection simplifiableifstatement if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } }
so, how can create menu this, or how can add dividers (with category headers) navigation drawer?
you can use standard navigationview
defining menu this:
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:id="@+id/group1" android:checkablebehavior="single" id> //items of group1 </group> <group android:id="@+id/group2" android:checkablebehavior="single" id> //items of group2 </group>
it important give unique id each group.
Comments
Post a Comment