Câu trả lời:
Bạn có thể với một kiểu, nhưng bạn phải thêm nó vào phần khai báo Chủ đề chính.
<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>
Bạn cũng có thể thay đổi nó một cách động, mà tôi sẽ đi vào chi tiết ở đây:
Thay đổi biểu tượng menu Phần bổ sung Android theo chương trình
parent="Widget.Sherlock.ActionButton.Overflow"
parent="@style/Widget.AppCompat.ActionButton.Overflow"
dường như phù hợp với tôi.
Đối với những người không thể làm cho nó hoạt động, hãy thử điều này KHÔNG có vùng tên "android:".
<item name="actionOverflowButtonStyle">@style/OverFlow</item>
Thay đổi biểu tượng bổ sung tùy chỉnh của Thanh tác vụ trong 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>
Đặt chủ đề tùy chỉnh "MyTheme" trong thẻ ứng dụng của AndroidManifest.xml
<application
android:name="com.example.android.MainApp"
android:theme="@style/AppTheme">
</application>
Chúc vui vẻ.@.@
Bất kể tôi đã cố gắng làm gì styles.xml
, không có giải pháp nào phù hợp với tôi. Cuối cùng, nếu bạn có AppCompat 23+, thì đây là cách dễ nhất thực sự hoạt động:
toolbar.setOverflowIcon(drawable);
Câu trả lời của @ adneal là đúng (vì vậy đây chỉ là giải thích trên wiki cộng đồng để mở rộng về nó).
Một trong những nhận xét cho rằng có thể có sự hiểu lầm về cách thực hiện việc này, vì vậy câu trả lời của tôi chỉ là một ví dụ khác về cách ghi đè hình ảnh biểu tượng Overflow.
Mã bên dưới dựa trên các kiểu mẫu từ Dự án Android mới mẫu ADT. Mã đến từ styles.xml
tệp trong res/values
thư mục.
<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>
Những gì mã ở trên này làm là thay thế biểu tượng tràn mặc định bằng bất kỳ biểu tượng có thể vẽ nào mà bạn có được đặt tên ic_menu_moreoverflow
. Nếu bạn muốn có một cách nhanh chóng để kiểm tra, hãy sử dụng tên tệp biểu tượng trình khởi chạy của ứng dụng, điều này sẽ giúp bạn thấy rõ cách hoạt động của nó.
Một tài nguyên hữu ích để sử dụng khi cố gắng hiểu ActionBar
kiểu, là:
Ở đó, bạn có thể xác định các màu cụ thể để sử dụng cho biểu tượng Overflow của mình và tệp ZIP sẽ bao gồm styles.xml
tệp chính xác cho bạn.
Để thay đổi màu biểu tượng Overflow, bạn chỉ cần thêm
toolbar.setOverflowicon(getDrawable(R.id.whiteIcon));
hoặc là
toolbar.setOverflowicon(getDrawable(R.id.redIcon));
Nó sẽ thay đổi biểu tượng, chọn bất kỳ màu nào bạn muốn và đặt làm Overflowicon.
Sau thời gian dài tìm kiếm, tôi đã nhận được hướng dẫn như sau:
Thêm mục bên trong chủ đề trong theme.xml:
<item name="android:actionBarWidgetTheme">@style/widgetStyle</item>
<item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
Thêm biểu tượng theo phong cách trong cùng một tệp, ý tôi là theme.xml:
<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/icon_menu</item>
</style>
Kiểm tra biểu tượng tùy chỉnh mà bạn muốn thay đổi
Nó đã làm việc cho tôi