0
내 응용 프로그램 용으로 두 개의 테마를 개발하려고하는데 테마에 따라 다른 선택기를 사용하려면보기가 필요합니다. 올바른 선택기를 사용할 참조를 만들 때 InflationException 오류가 발생합니다. 여기 셀렉터를 참조하면 InflationException이 발생합니다.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="DarkTheme" parent="@android:style/Theme.Holo">
<item name="upvoteArrow">@drawable/upvote_states</item>
<item name="downvoteArrow">@drawable/downvote_states</item>
</style>
<style name="LightTheme" parent="@android:style/Theme.Holo.Light">
<item name="upvoteArrow">@drawable/upvote_states_l</item>
<item name="downvoteArrow">@drawable/downvote_states_l</item>
</style>
</resources>
내 upvote_states.xml입니다 :
여기
<selector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res/com.reditr.app">
<item android:drawable="@drawable/ic_action_arrow_top_colored" app:enabled="true"/>
<item style="@drawable/ic_action_arrow_top" app:enabled="false"/>
</selector>
내 upvotes_states_l.xml입니다 : 여기
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="ReditrTheme">
<attr name="downvoteArrow" format="reference" />
<attr name="upvoteArrow" format="reference" />
</declare-styleable>
<declare-styleable name="VoteState">
<attr name="enabled" format="boolean" />
</declare-styleable>
</resources>
내 themes.xml입니다 : 여기
내 attrs.xml이의
<selector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res/com.reditr.app">
<item android:drawable="@drawable/ic_action_arrow_top_colored" app:enabled="true"/>
<item style="@drawable/ic_action_arrow_top_l" app:enabled="false"/>
</selector>
downvotes_states.xml 및 downvotes_states_l.xml은 위의 것과 동일하며 대신 ic_action_arrow_bottom을 사용합니다. 마지막으로
, 여기에 내가에 대한 참조 적용하기 위해 노력하고있어 내보기입니다 : 나는 온라인으로 몇 가지 솔루션을 시도<com.example.views.UpvoteView
android:id="@+id/upvote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:scaleType="fitCenter"
android:src="?attr/upvoteArrow" />
을하지만 그들은 항상 내 문제에 조금 약간 달랐다 내 해결되지 않았다 문제.
미리 감사드립니다.