NavigationView改變Menu中icon大小,icon與文字間距,文字大小

NavigationViewsupport.design包中很經常使用的控件。用法你們應該都知道了。
有時候咱們想要修改 Menu中的icon大小,可是好像並無什麼公開的Api來實現。沒辦法我就閱讀了一下源碼,而後終於發現了一些端倪。android

NavigationView中關於Menu的操做是用到了NavigationMenuPresenter這麼一個類bash


點進去一看,發現 Menu實際上是用 NavigationMenuView來實現的。而它是繼承 RecycleView

既然是RecycleView,那麼找到它的Adapter,就能找到item的佈局了
而它的NavigationMenuAdapter就在NavigationMenuPresenter中,找到item的佈局
發現他的item是自定義了一個NavigationMenuItemViewapp

到這看到這個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

相關文章
相關標籤/搜索