android - Change Navigation Drawer List text color and add icons -
i have not found answers question on stack overflow. using android studio default navigation drawer layout. tried changing colour of textview fragment_navigation.xml didn't help. not know in navigationdrawerfragment.java change color. perhaps need edits in below code.
mdrawerlistview.setadapter(new arrayadapter<string>( getactionbar().getthemedcontext(), android.r.layout.simple_list_item_activated_1, android.r.id.text1, new string[]{ getstring(r.string.title_section1), getstring(r.string.title_section2), getstring(r.string.title_section3), getstring(r.string.title_section4), getstring(r.string.title_section5), getstring(r.string.title_section6) })); viewgroup header = (viewgroup) inflater.inflate(r.layout.headers, mdrawerlistview,false); mdrawerlistview.addheaderview(header, null, false); mdrawerlistview.setitemchecked(mcurrentselectedposition, true); return mdrawerlistview; } also unable find tutorials on adding icon along text in list in navigation drawer. please me well.
all need create custom adapter instead of using arrayadapter in default code.
i got simple example working uses custom adapter extends arrayadapter.
first, need layout each row in custom adapter.
nav_drawer_item.xml:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <imageview android:id="@+id/icon" android:paddingtop="20dp" android:layout_width="35dp" android:layout_height="55dp" /> <textview android:id="@+id/text" android:textstyle="bold" android:textcolor="#ff69b4" android:paddingtop="25dp" android:layout_marginleft="4dp" android:layout_width="wrap_content" android:layout_height="55dp" /> </linearlayout> then, in navigationdrawerfragment.java, define custom adapter, , use instead of default arrayadapter:
@override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { mdrawerlistview = (listview) inflater.inflate( r.layout.fragment_navigation_drawer, container, false); mdrawerlistview.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { selectitem(position); } }); //use custom adapter instead: mdrawerlistview.setadapter(new customnavadapter( navigationdrawerfragment.this.getactivity(), new string[]{ getstring(r.string.title_section1), getstring(r.string.title_section2), getstring(r.string.title_section3), }, new integer[]{ r.drawable.ic_launcher, r.drawable.ic_launcher, r.drawable.ic_launcher, })); mdrawerlistview.setitemchecked(mcurrentselectedposition, true); return mdrawerlistview; } public class customnavadapter extends arrayadapter<string> { private final activity _context; private final string[] _text; private final integer[] _imageid; public customnavadapter(activity context, string[] text, integer[] imageid) { super(context, r.layout.nav_drawer_item, text); this._context = context; this._text = text; this._imageid = imageid; } @override public view getview(int position, view convertview, viewgroup parent) { layoutinflater inflater = _context.getlayoutinflater(); view rowview = inflater.inflate(r.layout.nav_drawer_item, null, true); textview txttitle = (textview) rowview.findviewbyid(r.id.text); imageview imageview = (imageview) rowview.findviewbyid(r.id.icon); txttitle.settext(_text[position]); imageview.setimageresource(_imageid[position]); return rowview; } } result:

Comments
Post a Comment