2012-09-12 3 views
7

기존 상태 목록 드로어 블 (disabled state)에 추가하려고하는데 작동하지 않습니다.Statelist drawable android : state_enabled가 XML에서 작동하지 않습니다.

원래,이 코드했다 :

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/store_item_background_selected" android:state_selected="true"/> 
<item android:drawable="@drawable/store_item_background"/> 
</selector> 

및 선택 및 선택하지 않은 것이 완벽했다. 이런 식 = "false"를 state_enabled :

는 지금은 안드로이드 추가하고 싶었

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/store_item_background_selected" android:state_selected="true"/> 
<item android:drawable="@drawable/store_item_background" android:state_enabled="true"/> 
<item android:drawable="@drawable/store_item_background_disabled"/> 
</selector> 

을 그리고 그것은 결코 장애인 이미지로 전환합니다.

어떤 아이디어가 있습니까?

편집

는 나는이 statelist의 drwable을하고 있어요 지금은 장애인 이미지를 볼 뷰의 생성자에 setEnabled(false)을 추가,하지만 난 활성화에보기를 설정하면, 다시 비활성화로 전환되지 않습니다 . 이것은 정말 오래된 질문이지만

답변

7

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:drawable="@drawable/store_item_background_selected" android:state_enabled="true" android:state_selected="true"/> 
<item android:drawable="@drawable/store_item_background" android:state_enabled="true"/> 
<item android:drawable="@drawable/store_item_background_disabled" android:state_enabled="false"/> 

</selector> 
+0

는 차이가 없었다. – piojo

+0

죄송합니다. 내 코드에서 오류가 발생하여 사용하지 않도록 설정했습니다. – piojo

+0

오답. NOR 작업에 대해 설명하지 않았습니까? – Vucko

15

보십시오. 선택기를 적절히 작성해야합니다.

  1. 비활성 상태 첫번째
  2. 누른 상태 번째
  3. 정상 상태 것은 지난

+0

주문을 전환하면 즉시 내 문제가 해결되었습니다. 이 정보를 어디에서 찾았습니까? –

+0

일부는이 동일한 문제가 몇 시간 동안 붙어 있었을 때 Google에서 어디 –

+0

이 접근법을 사용하여 오랜 시간 동안이 문제가 발생했습니다 : StateListDrawable res = new StateListDrawable(); res.addState (new int [] android.R.attr.state_enabled}, 새 ColorDrawable (색상)); res.addState (new int [] {android.R.attr.state_enabled, android.R.attr.state_pressed}, 새 ColorDrawable (색상)); res.addState (새 int [] {}, 새 ColorDrawable (색상)); 그리고 이것은 즉시 효과가있었습니다. 감사. 그것이 어딘가에 문서화 되었으면 좋겠다 ... – ClayHerendeen