Android Studio: вид снизу навигации - AAPT: ошибка: '' несовместимо с атрибутом drawable (attr) - PullRequest
0 голосов
/ 23 октября 2019

Я добавил BottomNavigationView в свое приложение, как.

main.xml

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:layout_width="match_parent"
    android:layout_height="56dp"
    app:itemBackground="@drawable/nav_bgcolor"
    app:itemIconSize="50dp"
    app:itemIconTint="@color/nav_item_colors"
    app:itemTextColor="@color/nav_item_colors"
    app:labelVisibilityMode="unlabeled"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:menu="@menu/nav_items">
</com.google.android.material.bottomnavigation.BottomNavigationView>

menu / nav_items.xml

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/nav_home"
        android:icon="@drawable/home_white"
        android:title="@string/nav_home" />
    <item
        android:id="@+id/nav_market"
        android:icon="@drawable/market_white"
        android:title="@string/nav_market" />
    <item
        android:id="@+id/nav_news"
        android:icon="@drawable/news_white"
        android:title="@string/nav_news" />
    <item
        android:id="@+id/nav_account"
        android:icon="@drawable/account_white"
        android:title="@string/nav_account" />
</menu>

drawable / nav_bgcolor.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="#FF9800" android:state_checked="true" />
    <item android:drawable="#FFFFFF" android:state_checked="false" />
</selector>

color / nav_item_colors.xml

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

это предварительный просмотрв андроид студии

https://drive.google.com/file/d/1yICxFcTbSxYpILDtxg75Z4x-2Y1UaPM_/view?usp=sharing

на самом деле отображается дизайн, который я хочу сделать.

нет ошибки или чего-то еще, но когда я запускаю приложение тамошибки в drawable / nav_bgcolor.xml

C:\Users\[PCNAME]\AndroidStudioProjects\[APPNAME]\app\src\main\res\drawable\nav_bgcolor.xml:3: AAPT: error: '#FF9800' is incompatible with attribute drawable (attr) reference.
C:\Users\[PCNAME]\AndroidStudioProjects\[APPNAME]\app\src\main\res\drawable\nav_bgcolor.xml:4: AAPT: error: '#ffffff' is incompatible with attribute drawable (attr) reference.

ошибка произошла после того, как я добавил app: itemBackground = "@ drawable / nav_bgcolor" в main.xml

Я искал в Интернете, но безуспешно в поиске решения.

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

заменить android: рисовать с android: цвет рисовать / nav_bgcolor.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#FF9800" android:state_checked="true" />
    <item android:color="#FFFFFF" android:state_checked="false" />
</selector>
0 голосов
/ 23 октября 2019

В вашем селекторе вы используете

<selector>
    <item android:drawable="#FF9800" android:state_checked="true" />

Вы не можете использовать цвет (#FF9800), где вы должны определить android:drawable.

Использовать

<menu>
    <item
        android:id="@+id/nav_home"
        android:icon="@drawable/icon_add"
        android:title="@string/nav_home" />
    ...
</menu>

, где icon_add - это простое рисование.
А в вашем BottomNavigationView:

<com.google.android.material.bottomnavigation.BottomNavigationView
     app:itemIconTint="@color/nav_item_colors"
     ../>
...