Saya menambahkan sebuah BottomNavigationView
ke proyek, dan saya ingin memiliki warna teks (dan ikon warna) yang berbeda untuk tab yang dipilih (untuk mencapai efek tab yang tidak beruban yang tidak dipilih). Menggunakan warna yang berbeda dengan android:state_selected="true"
dalam file sumber daya pemilih warna tampaknya tidak berfungsi. Saya juga mencoba memiliki entri item tambahan dengan android:state_focused="true"
atau android:state_enabled="true"
, tidak ada efek sayangnya. Juga mencoba mengatur state_selected
atribut ke false (eksplisit) untuk warna default (tidak dipilih), tanpa hasil.
Inilah cara saya menambahkan tampilan ke tata letak saya:
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:itemBackground="@color/silver"
app:itemIconTint="@color/bnv_tab_item_foreground"
app:itemTextColor="@color/bnv_tab_item_foreground"
app:menu="@menu/bottom_nav_bar_menu" />
Inilah pemilih warna saya ( bnv_tab_item_foreground.xml
):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/darker_gray" />
<item android:state_selected="true" android:color="@android:color/holo_blue_dark" />
</selector>
Dan sumber daya menu saya ( bottom_nav_bar_menu.xml
):
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_home"
android:icon="@drawable/ic_local_taxi_black_24dp"
android:title="@string/home" />
<item
android:id="@+id/action_rides"
android:icon="@drawable/ic_local_airport_black_24dp"
android:title="@string/rides"/>
<item
android:id="@+id/action_cafes"
android:icon="@drawable/ic_local_cafe_black_24dp"
android:title="@string/cafes"/>
<item
android:id="@+id/action_hotels"
android:icon="@drawable/ic_local_hotel_black_24dp"
android:title="@string/hotels"/>
</menu>
Saya sangat menghargai bantuan apa pun.
sumber
1. Di dalam res membuat folder dengan warna nama (seperti drawable)
2. Klik kanan pada folder warna. Pilih baru-> file sumber daya warna-> buat file color.xml (bnv_tab_item_foreground) (Gambar 1: Struktur File)
3. Salin dan tempel bnv_tab_item_foreground
bnv_tab_item_foreground:
Gambar 1: Struktur File:
sumber
BottomNavigationView
menggunakan colorPrimary dari tema yang diterapkan untuk tab yang dipilih dan menggunakanandroid:textColorSecondary
untuk warna ikon tab tidak aktif.Jadi Anda bisa membuat gaya dengan warna primer yang disukai dan mengaturnya sebagai tema untuk Anda
BottomNavigationView
dalam file tata letak xml.styles.xml :
your_layout.xml :
sumber
android:textColorSecondary
tidak bekerja. harus menggunakanandroid:colorForeground
sebagai gantinyaandroid:textColorSecondary
bekerja untuk saya. Terima kasih!Jika Anda ingin mengubah warna ikon dan teks secara terprogram:
sumber
Sudah terlambat untuk menjawab tetapi mungkin bermanfaat bagi seseorang. Saya melakukan kesalahan yang sangat konyol, saya menggunakan file pemilih bernama bottom_color_nav.xml untuk Select dan unselect perubahan warna tetapi masih tidak mencerminkan perubahan warna apa pun di BottomNavigationView.
Kemudian saya menyadari, saya kembali salah dalam metode onNavigationItemSelected . Ini akan berfungsi dengan baik jika Anda akan mengembalikan true dalam metode ini.
sumber
Coba gunakan
android:state_enabled
daripadaandroid:state_selected
untuk atribut item pemilih.sumber
Untuk mengatur textColor,
BottomNavigationView
memiliki dua properti gaya yang dapat Anda atur langsung dari xml:itemTextAppearanceActive
itemTextAppearanceInactive
sumber
Saya menggunakan
com.google.android.material.bottomnavigation.BottomNavigationView
(tidak sama dengan OP) dan saya mencoba berbagai solusi yang disarankan di atas, tetapi satu-satunya hal yang berhasil adalah pengaturanapp:itemBackground
danapp:itemIconTint
warna pemilih saya bekerja untuk saya.color/tab_color.xml
Kegunaan sayaandroid:state_checked
dan saya juga menggunakan warna status terpilih untuk
color/bottom_navigation_text_color.xml
Tidak sepenuhnya relevan di sini, tetapi untuk transparansi penuh,
BottomNavigationView
gaya saya adalah sebagai berikut:sumber
Ini akan berhasil:
sumber
Alih-alih membuat pemilih, Cara terbaik untuk membuat gaya.
dan untuk mengubah ukuran teks, dipilih atau tidak dipilih.
Nikmati Android!
sumber