ツールバーで新しいVectorDrawableを使用する適切な方法は何ですか?
以下に示すようにapp:srcCompat
要素を使用しようとしましたが、何も表示されませんでした。
<menu
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto">
<item
app:srcCompat="@drawable/ic_clear"
app:showAsAction="ifRoom" />
</menu>
私はAndroid.support.v7.widget.Toolbar
とAndroid Support Library v23.2 on JB(16)を使用して独自のツールバーレイアウトを持っています。
結構簡単です。たとえば、ベクタードローアブル_vd_trash_24dp
_があるとします。
MenuItemを記述すると、_Android:icon
_を使用してVectorDrawableを直接アドレス指定することはできません。 _app:srcCompat
_も無視しているようです。
だが。として 知っているすべて ;)
AppCompatは、StateListDrawable、InsetDrawable、LayerDrawable、LevelListDrawable、RotateDrawableなどの別のドローアブルコンテナーで参照されている場合、ベクタードローアブルの読み込みをサポートします
やってみようかな?
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>
_
より
_<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>
_
確かにストリートマジック。
はい、MenuItem.setIcon()
を使用して実行時にドローアブルを設定できます。しかし、それを必要とする人は%)