Android:导航抽屉项目大小
Android: Navigation drawer item size
我有一个 Android 应用程序,里面有一个导航抽屉。抽屉从菜单资源文件中获取其项目。
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
活动项目上面有一个半透明层,这是默认的东西。我的问题是那个层的size/margin。
我想要这个:
而不是这个:https://i.stack.imgur.com/Zlp9p.png
我可以在 this answer 之后使它变成正方形,但它周围仍然有很小的余量。
如何实现?
您是否尝试过更改此属性app:itemHorizontalPadding="0dp"
。
你想要这个
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
style="@style/Widget.Custom.NavigationView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:clipToPadding="false"
android:fitsSystemWindows="true"
android:theme="@style/NavigationTheme"
app:headerLayout="@layout/nav_header_main"
app:itemHorizontalPadding="45dp"
app:itemIconPadding="@dimen/_17sdp"
app:itemIconTint="#000"
app:itemTextColor="#000"
app:menu="@menu/activity_main_drawer" />
样式
<style name="Widget.Custom.NavigationView" parent="Widget.Design.NavigationView">
<item name="itemIconTint">?attr/colorNavigationItem</item>
<item name="itemTextColor">?attr/colorNavigationItem</item>
<item name="itemBackground">?attr/drawableNavigationItemBackground</item>
</style>
<style name="NavigationTheme" parent="AppTheme">
<item name="android:layout_marginBottom">4dp</item>
</style>
在values
中添加attr.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="colorNavigationItem" format="color" />
<attr name="colorNavigationItemSelected" format="color" />
<attr name="drawableNavigationItemBackground" format="reference" />
</resources>
可以使用itemShapeInset*
属性来填充整个space:
<com.google.android.material.navigation.NavigationView
app:itemShapeInsetStart="0dp"
app:itemShapeInsetEnd="0dp"
app:itemShapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Nav.Square"
和 itemShapeAppearanceOverlay
有方角:
<style name="ShapeAppearanceOverlay.Nav.Square" parent="">
<item name="cornerSize">0dp</item>
</style>
我有一个 Android 应用程序,里面有一个导航抽屉。抽屉从菜单资源文件中获取其项目。
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
活动项目上面有一个半透明层,这是默认的东西。我的问题是那个层的size/margin。
我想要这个:
而不是这个:https://i.stack.imgur.com/Zlp9p.png
我可以在 this answer 之后使它变成正方形,但它周围仍然有很小的余量。
如何实现?
您是否尝试过更改此属性app:itemHorizontalPadding="0dp"
。
你想要这个
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
style="@style/Widget.Custom.NavigationView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:clipToPadding="false"
android:fitsSystemWindows="true"
android:theme="@style/NavigationTheme"
app:headerLayout="@layout/nav_header_main"
app:itemHorizontalPadding="45dp"
app:itemIconPadding="@dimen/_17sdp"
app:itemIconTint="#000"
app:itemTextColor="#000"
app:menu="@menu/activity_main_drawer" />
样式
<style name="Widget.Custom.NavigationView" parent="Widget.Design.NavigationView">
<item name="itemIconTint">?attr/colorNavigationItem</item>
<item name="itemTextColor">?attr/colorNavigationItem</item>
<item name="itemBackground">?attr/drawableNavigationItemBackground</item>
</style>
<style name="NavigationTheme" parent="AppTheme">
<item name="android:layout_marginBottom">4dp</item>
</style>
在values
attr.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="colorNavigationItem" format="color" />
<attr name="colorNavigationItemSelected" format="color" />
<attr name="drawableNavigationItemBackground" format="reference" />
</resources>
可以使用itemShapeInset*
属性来填充整个space:
<com.google.android.material.navigation.NavigationView
app:itemShapeInsetStart="0dp"
app:itemShapeInsetEnd="0dp"
app:itemShapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Nav.Square"
和 itemShapeAppearanceOverlay
有方角:
<style name="ShapeAppearanceOverlay.Nav.Square" parent="">
<item name="cornerSize">0dp</item>
</style>