상태값에 따라 다른 이미지를 적용하고 싶을 때 selector 를 이용하는데요.
버튼 enabled 값이 false (disabled) 상태일 때 이미지가 제대로 적용되지 않아 확인해보니 XML이 아래와 같았습니다.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_on" android:state_selected="true"></item>
<item android:drawable="@drawable/button_off" android:state_selected="false"></item>
<item android:drawable="@drawable/button_dimmed" android:state_enabled="false"></item>
</selector>
XML 내용을 보면 state_enable="false" 를 포함한 항목이 제일 아래에 있는데요
selected 상태보다 enabled 값이 우선적으로 처리되어야 하기 때문에 이 항목을 위쪽으로 올려주어야 합니다.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_dimmed" android:state_enabled="false"></item>
<item android:drawable="@drawable/button_on" android:state_selected="true"></item>
<item android:drawable="@drawable/button_off" android:state_selected="false"></item>
</selector>
이와같이.. 항목의 우선순위가 적용되는지 처음 알았네요... (알아서 좀 해주면 안되겠니!?)
'Android' 카테고리의 다른 글
XML 안에서 fragment에 Custom attribute 항목을 사용할 때 오류가 발생하는 경우 (0) | 2015.02.16 |
---|---|
WebView.openUrl() 에서 자바스크립트가 처리되지 않을 때 처리 방법 (0) | 2014.04.07 |
MapActivity 적용시 에러 (0) | 2013.02.04 |
Mac에서 안드로이드 개발 시작하기 2 (0) | 2013.01.31 |
Mac에서 안드로이드 개발 시작하기 (0) | 2013.01.31 |