Навигационный ящик с закругленными углами фона для предметов - PullRequest
0 голосов
/ 30 октября 2018

Я хочу иметь закругленный угол для элементов в навигационном ящике, например:

enter image description here

это пример дизайна материала на сайте material.io

возможно ли это?

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Это делается с помощью навигационного вида и menuItem и создает файл формы для круглой границы, и файл selected_state был создан с selected_checked, когда он активен и когда он деактивирован.

IMG:

0 голосов
/ 14 января 2019

Во-первых, я рекомендую вам перейти на Flutter, это более интуитивно понятно, и вы получили лучший поток интеграции руководящих материалов.

Теперь, чтобы добавить закругленные углы, цвет, шрифт и отступы к отмеченному элементу с помощью XML и Android Studio, у вас есть атрибуты «app» в NavigationView:

<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> directory и назовите каталог как «color». Затем создайте файл ресурсов цвета в каталоге цветов с новым> файлом ресурсов цвета> custom_color_config (name) и поместите это:

<?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 позже. Итак, новый> файл ресурсов для рисования> 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.

...