Yanıtlar:
Bir stille yapabilirsiniz, ancak onu ana Tema bildirimine eklemeniz gerekir.
<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>
Bunu dinamik olarak da değiştirebilirsiniz, bunu burada ayrıntılarıyla anlatacağım:
parent="Widget.Sherlock.ActionButton.Overflow"
parent="@style/Widget.AppCompat.ActionButton.Overflow"
benim için çalışıyor gibi görünüyor.
Çalışmasını sağlayamayanlar için bunu "android:" ad alanı OLMADAN deneyin.
<item name="actionOverflowButtonStyle">@style/OverFlow</item>
Styles.xml'de Actionbar'ın özel taşma simgenizi değiştirin.
<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>
AndroidManifest.xml'nin uygulama etiketine özel "MyTheme" temasını yerleştirin
<application
android:name="com.example.android.MainApp"
android:theme="@style/AppTheme">
</application>
İyi eğlenceler.@.@
Ne yapmaya çalıştığım önemli değil styles.xml
, çözümlerin hiçbiri benim için işe yaramadı. Sonunda, AppCompat 23+ sürümüne sahipseniz, ki yapmalısınız, bu gerçekten işe yarayan en kolay yoldur:
toolbar.setOverflowIcon(drawable);
@ adneal'ın cevabı doğru (bu yüzden bu sadece onu genişletmek için bir topluluk wiki açıklamasıdır).
Yorumlardan biri, bunun nasıl yapılacağının yanlış anlaşılabileceğini öne sürdü, bu nedenle cevabım, Taşma simgesi görüntüsünün nasıl geçersiz kılınacağına dair başka bir örnek.
Aşağıdaki kod, ADT örneği Yeni Android Projesi'ndeki şablon stillerine dayanmaktadır. Kod styles.xml
, res/values
klasördeki dosyadan gelir .
<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>
Yukarıdaki kodun yaptığı şey, varsayılan taşma simgesini, adlandırdığınız çekilebilir özellik ile değiştirmektir ic_menu_moreoverflow
. Test etmenin hızlı bir yolunu istiyorsanız, uygulamanızın başlatıcı simgesi dosya adını kullanın; bu, nasıl çalıştığını açıkça gösterecektir.
ActionBar
Stilleri anlamaya çalışırken kullanılacak yararlı bir kaynak şudur:
Orada Taşma simgeniz için kullanmak üzere belirli renkler tanımlayabilirsiniz ve ZIP dosyası styles.xml
sizin için doğru dosyayı içerecektir .
Taşma simgesi renk değişikliği için, sadece ekleyebilirsiniz
toolbar.setOverflowicon(getDrawable(R.id.whiteIcon));
veya
toolbar.setOverflowicon(getDrawable(R.id.redIcon));
Simgeyi değiştirecek, istediğiniz rengi seçecek ve Taşma simgesi olarak ayarlayacaktır.
Uzun bir araştırmadan sonra izlenecek rehberliği şöyle buldum:
Temanın içindeki öğeyi theme.xml dosyasına ekleyin:
<item name="android:actionBarWidgetTheme">@style/widgetStyle</item>
<item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
Aynı dosyaya stildeki simgeyi ekleyin yani theme.xml:
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/icon_menu</item>
</style>
Değiştirmek istediğiniz özel simgeye göz atın
Benim için çalıştı