导航抽屉圆角背景的项目

问题描述 投票:1回答:2

我希望导航抽屉中的项目有一个圆角,如下所示:

enter image description here

这是material.io网站上的材料设计的一个例子

可能吗 ?

android navigation-drawer android-navigation-drawer navigationview android-navigationview
2个回答
4
投票

首先,我建议您转向Flutter,它更直观,您可以获得最佳的材料指南集成流程。

现在,为了使用XML和Android Studio为已检查项添加圆角,颜色,字体和填充,您在NavigationView上具有“app”属性:

<android.support.v4.widget.DrawerLayout
    android:layout_width="match_parent"
    ...>

<android.support.design.widget.NavigationView
    android:layout_width="match_parent"
    ...
    app:itemIconTint="@color/custom_color_config"
    app:itemTextColor="@color/custom_color_config"
    app:itemBackground="@drawable/custom_drawable_resource"
    app:itemTextAppearance="@style/custom_style"/>

使用itemIconTint和itemTextColor,可以在选中或未选中时设置孔项的颜色配置(图标和文本)。首先,执行res> new>目录,并将目录命名为“color”。然后,使用new> color resource file> custom_color_config(name)在color目录中创建颜色资源文件,并将其放入:

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:color="your_checked_item_color"
        android:state_checked="true" />
    <item
        android:color="your_non_checked_item_color"/>
</selector>

具有state_checked = true属性的项目将其颜色应用于当前导航选中的项目。

要添加背景圆角框,请在drawable目录中创建一个新的可绘制资源文件,以便稍后在itemBackground中设置。那么,new> drawable资源文件> custom_drawable_resource(name)并把它放到:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:left="9dp"
        android:right="9dp"
        android:top="2dp"
        android:bottom="2dp">

        <shape>
            <solid android:color="@color/new_color_resource_name"/>
            <corners android:radius="5dp"/>
        </shape>

    </item>
</layer-list>

接下来,再次在颜色目录中创建第二个颜色资源文件,以与文件custom_drawable_resource(new_color_resource_name)中的纯色属性相关联,并将其放在:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
        android:color="your_background_checked_item_color"
        android:state_checked="true" />
    <item 
        android:color="your_background_non_checked_item_color"/>
</selector>

VOILA!只是添加文本外观自定义样式与一些半粗体字体。

PD:对不起,如果我的英语不好,我通常会阅读比我写的更多,来自MX的问候。


0
投票

这是通过navigationview和menuItem完成的,并为圆边创建一个shape文件,当selected_checked处于活动状态和取消激活时,selected_state文件是使用selected_checked创建的。

IMG:

© www.soinside.com 2019 - 2024. All rights reserved.