更改导航栏所选项目的颜色

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

我用了

setTheme(R.style.Theme_AppCompat);

将我的应用主题设置为更暗。现在我遇到的问题是导航栏中的选定项目相对较暗,因此用户几乎看不到它。

有什么东西可以用我的风格来选择另一种颜色的导航项目吗?这是它的图片

这是我的activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="visible"
    tools:context="at.mrminemeet.asciimoji.MainActivity">

.....


    <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:menu="@menu/navigation"/>

</android.support.constraint.ConstraintLayout>
java android android-studio-3.0 app-themes android-navigation-bar
2个回答
0
投票

您可以为BottomNavigationView指定BottomNavigationView_itemBackground属性,您可以将selector设置为具有不同颜色的背景,用于正常和选定状态


0
投票

将以下内容添加到BottomNavigationView:

app:itemIconTint="@drawable/bottom_navigation_selector"       
app:itemTextColor="@drawable/bottom_navigation_selector"

在drawable文件夹中,创建一个文件bottom_navigation_selector.xml并将其添加到它:

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

最后,在您使用此导航栏的每个活动中,将此行添加到onCreate()和onResume()

bottomNavigationView.setSelectedItemId(R.id.item);
© www.soinside.com 2019 - 2024. All rights reserved.