Apakah mungkin untuk mengubah ikon luapan di bilah tindakan? Saya memiliki ikon biru untuk semua item ActionBar dan saya juga ingin mengubah ikon luapan saat muncul.
Apakah mungkin untuk mengubah ikon luapan di bilah tindakan? Saya memiliki ikon biru untuk semua item ActionBar dan saya juga ingin mengubah ikon luapan saat muncul.
Jawaban:
Anda bisa dengan gaya, tetapi Anda harus menambahkannya ke deklarasi Tema utama.
<resources>
<!-- Base application theme. -->
<style name="Your.Theme" parent="@android:style/Theme.Holo">
<!-- Pointer to Overflow style ***MUST*** go here or it will not work -->
<item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
</style>
<!-- Styles -->
<style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_action_overflow</item>
</style>
</resources>
Anda juga dapat mengubahnya secara dinamis, yang akan saya bahas secara detail di sini:
parent="Widget.Sherlock.ActionButton.Overflow"
parent="@style/Widget.AppCompat.ActionButton.Overflow"
sepertinya berhasil untuk saya.
Bagi mereka yang tidak bisa membuatnya bekerja, coba ini TANPA namespace "android:".
<item name="actionOverflowButtonStyle">@style/OverFlow</item>
Ubah ikon luapan kustom Anda dari Actionbar di styles.xml.
<resources>
<!-- Base application theme. -->
<style name=“MyTheme" parent="@android:style/Theme.Holo">
<!-- Pointer to Overflow style DONT forget! -->
<item name="android:actionOverflowButtonStyle">@style/MyOverFlow</item>
</style>
<!-- Styles -->
<style name="MyOverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_your_action_overflow</item>
</style>
</resources>
Letakkan tema khusus "Tema Saya" di tag aplikasi AndroidManifest.xml
<application
android:name="com.example.android.MainApp"
android:theme="@style/AppTheme">
</application>
Selamat bersenang-senang.@.@
Tidak peduli apa yang saya coba lakukan styles.xml
, tidak ada solusi yang berhasil untuk saya. Pada akhirnya, jika Anda memiliki AppCompat 23+, yang seharusnya Anda lakukan, ini adalah cara termudah yang benar-benar berfungsi:
toolbar.setOverflowIcon(drawable);
Jawaban @adneal benar (jadi ini hanya penjelasan wiki komunitas untuk mengembangkannya).
Salah satu komentar menyarankan bahwa mungkin ada kesalahpahaman bagaimana melakukan ini, jadi jawaban saya hanyalah contoh lain tentang cara menimpa gambar ikon Overflow.
Kode di bawah ini didasarkan pada gaya template dari sampel ADT New Android Project. Kode berasal dari styles.xml
file di res/values
folder.
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>
</style>
<style name="OverflowMenuButton" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_menu_moreoverflow</item>
</style>
Apa yang dilakukan kode di atas ini adalah mengganti ikon luapan default dengan drawable apa pun yang Anda miliki yang dinamai ic_menu_moreoverflow
. Jika Anda ingin cara cepat untuk mengujinya, gunakan nama file ikon peluncur aplikasi Anda, yang akan menjelaskan cara kerjanya.
Sumber daya yang berguna untuk digunakan saat mencoba memahami ActionBar
gaya, adalah:
Di sana Anda dapat menentukan warna tertentu yang akan digunakan untuk ikon Overflow Anda, dan file ZIP akan menyertakan styles.xml
file yang benar untuk Anda.
Untuk perubahan warna ikon Overflow, Anda tinggal menambahkan
toolbar.setOverflowicon(getDrawable(R.id.whiteIcon));
atau
toolbar.setOverflowicon(getDrawable(R.id.redIcon));
Ini akan mengubah ikon, pilih warna apa pun yang Anda inginkan dan atur sebagai ikon Overflow.
Setelah lama mencari apa saya mendapat panduan untuk diikuti seperti:
Tambahkan item di dalam tema di theme.xml:
<item name="android:actionBarWidgetTheme">@style/widgetStyle</item>
<item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
Tambahkan ikon dengan gaya di file yang sama yang saya maksud theme.xml:
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/icon_menu</item>
</style>
Lihat ikon khusus yang ingin Anda ubah
Itu berhasil untuk saya