2
私は、カスタムdrawable xmlの中にattrを置くときに問題があります。ここでカスタムdrawableの中にattrを置く方法は?
は私のレイアウトのサンプルです:
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/my_custom_btn"/>
その後、私のカスタム描画可能 "my_custom_btn"、私はattr_my_custom_colorとその色を指定したい:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="?attr/attr_my_custom_color" /> <!-- pressed -->
</selector>
マイattr.xmlファイル:
<resources>
<attr name="attr_my_custom_color" format="color"/>
</resources>
そして、私のstyle.xmlファイル、私のアプリ私は私のレイアウトでそれをテストするとき
<resources>
<style name="AppThemeTest" parent="Theme.AppCompat.Light.NoActionBar">
<item name="attr_my_custom_color">@color/primary</item>
</style>
マイattrが正常に動作しますが、私は私のカスタム描画可能内側に置いたとき、それは動作しません:陽イオンは(私のマニフェストに)このテーマを使用しています。
それは罰金コンパイルが、私は私のアプリを起動したとき、それはこのエラーが表示されます。タグは「描画可能」を必要とします。
によって引き起こさ:org.xmlpull.v1.XmlPullParserException:バイナリXMLファイルのライン#4アトリビュートまたはチャイルドタグを使用してドロワーブルを定義する
カスタムドロウアブル内にattrを指定する手助けができますか?
<商品のandroid:state_pressed = "true" を アンドロイド: "?のattr/attr_my_custom_color" 描画可能= /> 'それはもうクラッシュしませんが、それは適用されません<! - 押します - > 'どちらか。 – curiousStranger123
あなたのminSdkVersionは何ですか? –
minSdkVersion 16 – curiousStranger123