2014-02-20 3 views
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" /> 

을하지만 그들은 항상 내 문제에 조금 약간 달랐다 내 해결되지 않았다 문제.

미리 감사드립니다.

답변

0

내가 실수 한 것을 깨달았습니다. 내 states.xml 파일에서 어떤 이유로 style 속성을 사용했습니다. 안드로이드 : drawable이어야합니다.

관련 문제