NavigationView
是support.design
包中很經常使用的控件。用法你們應該都知道了。
有時候咱們想要修改 Menu
中的icon
大小,可是好像並無什麼公開的Api來實現。沒辦法我就閱讀了一下源碼,而後終於發現了一些端倪。android
在NavigationView
中關於Menu
的操做是用到了NavigationMenuPresenter
這麼一個類bash
Menu
實際上是用
NavigationMenuView
來實現的。而它是繼承
RecycleView
既然是RecycleView
,那麼找到它的Adapter
,就能找到item
的佈局了
而它的NavigationMenuAdapter
就在NavigationMenuPresenter
中,找到item的佈局
發現他的item是自定義了一個NavigationMenuItemView
app
到這看到這個mIconSize
是直接取的系統的屬性design_navigation_icon_size
且沒有提供公開的API來設置,咱們能夠在咱們的dimens
文件中重寫這個屬性ide
<!-- 側滑圖標與文字間距 -->
<dimen name="design_navigation_icon_padding" tools:override="true">11dp</dimen>
<dimen name="design_navigation_icon_size" tools:override="true">17dp</dimen>複製代碼
親測可用佈局
關於Menu
的文字大小則能夠經過自定義Style
來實現spa
<style name="myNavMenuTextStyle">
<item name="android:textSize">@dimen/dimen_size_17</item>
</style>複製代碼
而後在佈局文件中聲明3d
<android.support.design.widget.NavigationView
android:layout_width="250dp"
android:layout_height="match_parent"
...
...
app:itemTextAppearance="@style/myNavMenuTextStyle" />複製代碼
這樣就能夠啦code