Saya telah memperbarui SDK saya ke API 21 dan sekarang ikon back / up adalah panah hitam yang menunjuk ke kiri.
Saya ingin warnanya abu-abu. Bagaimana saya bisa melakukan itu?
Di Play Store, misalnya, panahnya berwarna putih.
Saya sudah melakukan ini untuk mengatur beberapa gaya. Saya telah menggunakan @drawable/abc_ic_ab_back_mtrl_am_alpha
untuk homeAsUpIndicator
. Drawable itu transparan (hanya alpha) tetapi panah ditampilkan dalam warna hitam. Saya ingin tahu apakah saya dapat mengatur warna seperti yang saya lakukan di DrawerArrowStyle
. Atau jika satu-satunya solusi adalah membuat @drawable/grey_arrow
dan menggunakannya untuk saya homeAsUpIndicator
.
<!-- Base application theme -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:actionBarStyle" tools:ignore="NewApi">@style/MyActionBar</item>
<item name="actionBarStyle">@style/MyActionBar</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
<item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
<item name="android:homeAsUpIndicator" tools:ignore="NewApi">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
</style>
<!-- ActionBar style -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
<item name="android:background">@color/actionbar_background</item>
<!-- Support library compatibility -->
<item name="background">@color/actionbar_background</item>
</style>
<!-- Style for the navigation drawer icon -->
<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
<item name="spinBars">true</item>
<item name="color">@color/actionbar_text</item>
</style>
Solusi saya sejauh ini adalah mengambil @drawable/abc_ic_ab_back_mtrl_am_alpha
, yang tampaknya berwarna putih, dan melukisnya dalam warna yang saya inginkan menggunakan editor foto. Ini bekerja, meskipun saya lebih suka menggunakan @color/actionbar_text
suka di DrawerArrowStyle
.
sumber
homeAsUpIndicator
/@drawable/abc_ic_ab_back_mtrl_am_alpha
kode Anda untuk membuat panah kembali putih. Saya lebih suka ini daripada meretas ke Jawa.Jawaban:
Anda dapat mencapainya melalui kode. Dapatkan panah belakang yang dapat digambar, modifikasi warnanya dengan filter, dan atur sebagai tombol kembali.
Revisi 1:
Mulai dari API 23 (Marshmallow) sumber yang dapat ditarik
abc_ic_ab_back_mtrl_am_alpha
diubah keabc_ic_ab_back_material
.EDIT:
Anda dapat menggunakan kode ini untuk mencapai hasil yang Anda inginkan:
sumber
ContextCompat.getDrawable(this, R.drawable.abc_ic_ab_back_mtrl_am_alpha)
karenagetResources.getDrawable(int)
sudah usangMelihat
Toolbar
danTintManager
sumber,drawable/abc_ic_ab_back_mtrl_am_alpha
diwarnai dengan nilai atribut stylecolorControlNormal
.Saya memang mencoba mengatur ini dalam proyek saya (dengan
<item name="colorControlNormal">@color/my_awesome_color</item>
tema saya), tetapi masih hitam untuk saya.Perbarui :
Menemukannya. Anda perlu mengatur
actionBarTheme
atribut ( tidakactionBarStyle
) dengancolorControlNormal
.Misalnya:
sumber
colorControlNormal
pada tema root alih-alih diactionBarTheme
rute yang dilalui.Mencoba semua saran di atas. Satu-satunya cara saya berhasil mengubah warna ikon navigasi default Tombol kembali panah di toolbar saya adalah untuk mengatur colorControlNormal di tema dasar seperti ini. Mungkin karena fakta bahwa orang tua menggunakan Theme.AppCompat.Light.NoActionBar
sumber
style.xml
colorControlNormal
ini tidak diawali denganandroid:
.Perlu menambahkan satu atribut ke tema toolbar Anda -
Terapkan toolbar_theme ini ke toolbar Anda.
ATAU
Anda dapat langsung mendaftar ke tema Anda -
sumber
Cukup tambahkan
ke tema aplikasi Anda saat ini.
sumber
jika digunakan
Toolbar
, Anda dapat mencoba inisumber
Seperti yang dikatakan pada sebagian besar komentar sebelumnya, solusinya adalah menambahkan
<item name="colorControlNormal">@color/white</item>
ke tema aplikasi Anda. Tetapi konfirmasikan bahwa Anda tidak memiliki tema lain yang ditentukan dalam elemen Bilah Alat pada tata letak Anda.sumber
Jawaban oleh Carles adalah jawaban yang benar, tetapi beberapa metode seperti getDrawable (), getColor () sudah usang pada saat saya menulis jawaban ini . Jadi jawaban yang diperbarui adalah
Mengikuti beberapa pertanyaan stackoverflow lainnya, saya menemukan bahwa memanggil ContextCompat.getDrawable () mirip dengan
Dan ContextCompat.getColor () mirip dengan
Tautan 1: ContextCompat.getDrawable ()
Tautan 2: ContextCompat.getColor ()
sumber
abc_ic_ab_back_material
, bukannyaabc_ic_ab_back_mtrl_am_alpha
.Saya menemukan solusi yang berfungsi pra Lollipop. Atur "colorControlNormal" di dalam "actionBarWidgetTheme" untuk mengubah warna homeAsUpIndicator. Mengubah jawaban rockgecko dari atas menjadi seperti ini:
sumber
Pada compileSdkVersoin 25, Anda bisa melakukan ini:
styles.xml
sumber
Gunakan metode di bawah ini:
Sekarang Anda dapat mengatur gambar dengan:
sumber
Ubah Warna Menu Nav Icon
Di style.xml:
sumber
Solusi lain yang mungkin cocok untuk Anda adalah dengan tidak mendeklarasikan bilah alat sebagai bilah tindakan aplikasi (oleh
setActionBar
atausetSupportActionBar
) dan mengatur ikon kembali di onActivityCreated Anda menggunakan kode yang disebutkan dalam jawaban lain di halaman iniSekarang, Anda tidak akan mendapatkan
onOptionItemSelected
panggilan balik ketika Anda menekan tombol kembali. Namun, Anda dapat mendaftar untuk itu menggunakansetNavigationOnClickListener
. Inilah yang saya lakukan:Saya tidak yakin apakah itu akan berfungsi jika Anda bekerja dengan item menu.
sumber
Kami mengalami masalah yang sama dan yang kami inginkan hanyalah mengatur
aplikasi: collapseIcon
atribut pada bilah alat pada akhirnya, yang tidak kami temukan karena tidak didokumentasikan dengan sangat baik :)
sumber
coba ini
panggilan fungsi:
sumber
Inilah yang bekerja untuk saya:
Tambahkan atribut di bawah ini ke tema Anda.
Untuk mengubah panah kembali toolbar / actionbar kembali di atas api 21
Untuk mengubah panah kembali toolbar / actionbar kembali di bawah api 21
Untuk mengubah mode aksi panah kembali
Untuk menghapus bayangan toolbar / actionbar
Untuk mengubah drawbar overflow yang dapat digambar
Catatan: 'srcCompat' digunakan sebagai ganti 'android: src' karena dukungan vektor yang dapat ditarik untuk api di bawah 21
sumber
Saya baru saja mengubah tema bilah alat menjadi @ style / ThemeOverlay.AppCompat.Light
dan panah menjadi abu-abu gelap
sumber
Inilah cara saya melakukannya di Komponen Bahan:
sumber
Solusinya sangat sederhana
Cukup masukkan baris berikut ke gaya Anda bernama AppTheme
Sekarang seluruh kode xml Anda akan terlihat seperti yang ditunjukkan di bawah ini (gaya default).
sumber
Anda dapat mengubah warna ikon navigasi secara terprogram seperti ini:
sumber
Hapus
android:homeAsUpIndicator
danhomeAsUpIndicator
dari tema Anda dan itu akan baik-baik saja. Thecolor
atribut dalam AndaDrawerArrowStyle
gaya harus cukup.sumber
color
atribut). Panah laci sedikit lebih besar.Kecuali ada solusi yang lebih baik ...
Apa yang saya lakukan adalah mengambil
@drawable/abc_ic_ab_back_mtrl_am_alpha
gambar, yang tampak putih, dan melukisnya dalam warna yang saya inginkan menggunakan editor foto.sumber