Android NavigationView的使用詳解以及各種問(wèn)題解決方案

一:先看效果圖

這個(gè)效果圖分為三部分:頭布局 menu(即中間的item部分) 尾布局

二:NavigationView的定義

Android5.0以前。我們做抽屜菜單的時(shí)候,左或右邊滑出來(lái)的那一部分的布局都是由我們自定義的。于是Google在5.0之后推出了NavitationView,就是我們左邊滑出來(lái)的這個(gè)菜單。這個(gè)菜單整體上分為兩部分,上面一部分叫做HeaderLayout,下面的那些點(diǎn)擊項(xiàng)都是menu。

三:Navigation的使用(直接上代碼)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

解釋:

這是主界面

這是側(cè)滑界面

android:layout_gravity="start"或者Android:layout_gravity="left" :表示側(cè)滑菜單從左邊滑出,改成right變?yōu)閺挠疫吇觥?/p>

app:headerLayout="@layout/nav_header_main"? :表示頭布局

app:menu="@menu/activity_main_drawer"? :中間部分,menu的點(diǎn)擊部分

頭布局代碼:layout/nav_header_main

? ? ? ? ? ?

menu/activity_main_drawer布局

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

四:出現(xiàn)的問(wèn)題

Q1:怎么在item中間加一條分割線

Answer:把item放在group里面。注意group要有id。

代碼:? ? ? ? ? ?

Q2:怎么獲得頭布局的控件

Answer:

View headerView =navigationView.getHeaderView(0);//獲得頭布局

獲取imageview

ImageViewmImgPersonHead= (ImageView) headerView.findViewById(R.id.img_person_head);Q3:Item的點(diǎn)擊事件:

navigationView.setNavigationItemSelectedListener(newNavigationView.OnNavigationItemSelectedListener() {@Overridepublic booleanonNavigationItemSelected(MenuItem item) {//在這里處理item的點(diǎn)擊事件

switch(item.getItemId()) {

caseR.id.xxx:startActivity(newIntent(this,xxxActivity.class));break;

}return true;

})

Q4:怎么添加尾布局

Answer:看上面的代碼,只要在NavigationView里面,加入想要的尾布局內(nèi)容就可以

Q5:怎么設(shè)置item中icon的顏色

1.app:itemBackground="@color/colorAccent"設(shè)置每一個(gè)item的背景顏色

2.app:itemTextColor=""設(shè)置item的背景顏色

3.代碼中設(shè)置:navigationView.setItemIconTintList(null); //顯示icon本身的顏色

Q6:怎么設(shè)置item中icon的大?。?/p>

在dimens 文件中加入該屬性:

48dp

原理:

查看NavigationView中的源碼,最終發(fā)現(xiàn)在 NavigationMenuItemView這個(gè)類中實(shí)現(xiàn)時(shí),是采用以下方式獲取大小的:

public NavigationMenuItemView(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

this.mIconSize = context.getResources().getDimensionPixelSize(dimen.navigation_icon_size);

}

Finl:最后 歡迎各位補(bǔ)充。有問(wèn)題歡迎批評(píng)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容