2012-12-19 2 views
1
<item android:state_enabled="false" android:color="@android:color/bright_foreground_dark_disabled"/> 
<item android:color="@android:color/bright_foreground_dark"/> 

이 두 가지의 차이점은 무엇입니까? 문서에 따르면 첫 번째 항목의 색상은 상태가 사용 가능으로 설정되지 않은 경우 사용되며 두 번째 항목은 기본 항목의 색상입니다. 따라서 항목을 사용할 수없는 경우 어떤 색이 사용됩니까?선택 항목 android : state_xxx = "false"상태가없는 항목 (기본값)

+0

'android : drawable' 대신에'android : color'를 사용할 수 있습니까? –

+0

글쎄, 코드 라인은 내 것이 아니지만 안드로이드 소스에서 가져온 것입니다, 그래서 나는 거기에 사용할 수 있다고 확신합니다 :) – NullPointerException

답변

3

항목이 활성화되어 있지 않으면 첫 번째 item이 사용되며 이는 해당 state 선택기와 모두 일치합니다. 선택기 항목은 위에서 아래로 검사되고 state과 일치하는 첫 번째 항목이 사용됩니다.

+1

예. 문서를 읽는 것만으로 : "각 상태가 변경되는 동안 상태 목록은 위쪽에서 아래쪽으로 이동하고 현재 상태와 일치하는 첫 번째 항목이 사용됩니다. 선택 항목은"가장 일치하는 항목 "을 기반으로하지 않지만 단순히 국가의 최소 기준에 부합한다 "고 밝혔다. 감사 – NullPointerException

0

false 상태는 다른 주와 함께 사용하도록되어 있습니다. 예를 들어 체크 가능한 항목이 있고 비활성화되었거나 활성화되어있을 수 있으며 각 주 조합마다 다른 드로어 블을 사용하려고합니다. 그 실수하지 비록, 당신이 그런 조합이 필요하지 않은 경우, 다른 국가없이 state_xxx="false"를 사용할 필요가

<item android:state_checked="true" android:state_enabled="true" android:drawable="@drawable/drawable1"/> 
<item android:state_checked="true" android:state_enabled="false" android:drawable="@drawable/drawable2"/> 
<item android:state_checked="false" android:state_enabled="true" android:drawable="@drawable/drawable3"/> 
<item android:state_checked="false" android:state_enabled="false" android:drawable="@drawable/drawable4"/> 
<item android:drawable="@drawable/drawable0"/> 

없습니다 : 이것은 다음과 같은 방법을 달성 할 수있다.