बाहर निकलना यह काफी आसान है। कहें, आपके पास वेक्टर ड्रायबल vd_trash_24dp
है।
मेनू का वर्णन करना कोई भी android:icon
के साथ सीधे वेक्टर ड्रावेबल को संबोधित नहीं कर सकता है। ऐसा लगता है कि app:srcCompat
भी अनदेखा कर रहा है।
लेकिन। all we know के रूप में;)
AppCompat समर्थन लोड हो रहा है वेक्टर ड्रॉएबल करता है जब वे इस तरह के एक StateListDrawable, InsetDrawable, LayerDrawable, LevelListDrawable, और RotateDrawable
की कोशिश करते हैं, ऐसा करना चाहिए के रूप में एक और drawable कंटेनर में संदर्भित कर रहे हैं हम?
से
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<item android:id="@+id/menu_action_filter"
android:title="@string/menu_action_filter"
android:icon="@drawable/vd_test_vd"
android:orderInCategory="100"
app:showAsAction="always"/>
</menu>
सड़क जादू वास्तव में StateListDrawable vd_test_vd
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/vd_trash_24dp" />
</selector>
बनाएँ।
हां, कोई भी MenuItem.setIcon()
के साथ रनटाइम पर कोशिश करने और सेट करने योग्य सेट कर सकता है। लेकिन उसे उस% की आवश्यकता है)
आप रनटाइम – vigilancer
@Vigilancer पर MenuItem.setIcon() को आजमा सकते हैं, आपकी टिप्पणी ने मुझे सही रास्ते पर रखा है और यह काम करता है। एक छोटे से स्निपेट के साथ एक असली जवाब बनाओ और मैं इसे एक उत्तर के रूप में स्वीकार करूंगा। – vwrynn