Android Studio: Bottom Navigation View - AAPT: error: ' ' is incompatible with attribute drawable (attr) reference
Android Studio: Bottom Navigation View - AAPT: error: ' ' is incompatible with attribute drawable (attr) reference
我已经在我的应用程序中添加了 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>
这是android工作室的预览
https://drive.google.com/file/d/1yICxFcTbSxYpILDtxg75Z4x-2Y1UaPM_/view?usp=sharing
它实际上显示了我想要发生的设计。
没有错误或其他什么,但是当我 运行 应用程序时 drawable/nav_bgcolor.xml[=16= 出现错误]
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.
错误发生在我在 main.xml 中添加 app:itemBackground="@drawable/nav_bgcolor" 之后
我已经在互联网上进行了搜索,但没有找到任何解决方案。
在您的选择器中您正在使用
<selector>
<item android:drawable="#FF9800" android:state_checked="true" />
您不能在应该定义 android:drawable
.
的地方使用颜色 (#FF9800
)
使用
<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"
../>
将android:drawable替换为drawable/nav_bgcolor中的android:color。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>
我已经在我的应用程序中添加了 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>
这是android工作室的预览
https://drive.google.com/file/d/1yICxFcTbSxYpILDtxg75Z4x-2Y1UaPM_/view?usp=sharing
它实际上显示了我想要发生的设计。
没有错误或其他什么,但是当我 运行 应用程序时 drawable/nav_bgcolor.xml[=16= 出现错误]
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.
错误发生在我在 main.xml 中添加 app:itemBackground="@drawable/nav_bgcolor" 之后
我已经在互联网上进行了搜索,但没有找到任何解决方案。
在您的选择器中您正在使用
<selector>
<item android:drawable="#FF9800" android:state_checked="true" />
您不能在应该定义 android:drawable
.
#FF9800
)
使用
<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"
../>
将android:drawable替换为drawable/nav_bgcolor中的android:color。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>