Навигационный ящик с закругленными углами фона для предметов

1

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

Изображение 174551

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

Является ли это возможным?

Теги:
android-navigation-drawer
navigationview
navigation-drawer
android-navigationview

2 ответа

3

Во-первых, я рекомендую вам перейти на 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>

И ВОЙЛА! просто добавьте к внешнему виду текста собственный стиль с полужирным шрифтом.

PD: Извините, если у меня плохой английский, я обычно читаю больше, чем пишу, что касается MX.

  • 12
    «Я рекомендую вам перейти к флаттеру». Вы не должны давать такие «советы», не понимая ситуации ОП. Они хотели закругленные углы на элементе макета. Говорить им, чтобы они переключали все свое приложение, - нелепое предложение.
0

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

Изображение 174551

Ещё вопросы

Сообщество Overcoder
Наверх
Меню