listview 선택 배경이 강조

28495 단어 androidListView
 
 

: listview , , , 。 , , onItemSelected() , 。

  , , , , ( : , )。

      selector :

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8" ?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  3. <!--  -->  
  4. <item android:drawable="@drawable/pic1" />  
  5. <!--  -->  
  6. <item android:state_window_focused="false" android:drawable="@drawable/pic1" />  
  7. <!--  -->  
  8. <item android:state_focused="true" android:state_pressed="true"  
  9. android:drawable="@drawable/pic2" />  
  10. <!--  -->  
  11. <item android:state_focused="false" android:state_pressed="true"  
  12. android:drawable="@drawable/pic3" />  
  13. <!-- -->  
  14. <item android:state_selected="true" android:drawable="@drawable/pic4" />  
  15. <!-- -->  
  16. <item android:state_focused="true" android:drawable="@drawable/pic5" />  
  17. </selector>  
: selector

?  。

  1. <!--  -->  
  2. <item android:drawable="@drawable/pic1" /> 
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--           -->
<item android:state_window_focused="false" android:drawable="@drawable/pic1" />
<!--                    -->
<item android:state_focused="true" android:state_pressed="true"
android:drawable="@drawable/pic2" />
<!--              -->
<item android:state_focused="false" android:state_pressed="true"
android:drawable="@drawable/pic3" />
<!--        -->
<item android:state_selected="true" android:drawable="@drawable/pic4" />
<!--          -->
<item android:state_focused="true" android:drawable="@drawable/pic5" />
<!--         -->
<item android:drawable="@drawable/pic1" />
</selector>

대상
위에서 설명한 ListView 강조 표시는 다음과 같습니다.
만약에 오래 밝지 않으면 간단하게 이렇게 할 수 있어요.
<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/selectedbg" />
</selector>

만약 오랫동안 밝게 보이면 눌렀을 때만 밝게 보이지만 선택 효과가 없습니다.android:stateselected = "true"는 실제 기기에서 작용하지 않는다(구체적으로 나도 왜 그런지 모르겠다)
<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/selectedbg" />
    <item android:state_selected="true" android:drawable="@drawable/app_list_corner_round" />
</selector>

우리는 이 위에 기본적으로 표시된 것만 추가하면 된다.
<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/selectedbg" />    
    <item  android:drawable="@drawable/app_list_corner_round" />
</selector>

요약해서 오래 보이려면 기본 디스플레이를 추가하십시오

오래오래 밝아지고 싶지 않아요. 이거 빼면 돼요.
만약 state가 필요하지 않다면pressed = "true"이런 상태일 때는 selector로 할 필요가 없어요. listview 레이아웃에 직접 넣을게요.
android:listSelector="@drawable/selectedbg"또는 코드cornerListView.setSelector(R.drawable.selectedbg);
위에서 말한 것이 만족하지 않으면 자바 코드에서도 실현할 수 있다. 비교적 좋은 다음 코드는listview 단일 선택 모드에서 클릭하면 배경 그림이 장기적으로 밝게 연결된다.http://blog.csdn.net/iamkila/article/details/7218351
꼭대기
0
밟다
0
Gesture DetectorOnGestureListener 자세히 (회전) 다음 Android 서비스의 서비스 (2) 는 AIDL 프로세스 간 통신 에 대해 설명합니다.
나의 동류 문장
android 노트(69)
http://blog.csdn.net

좋은 웹페이지 즐겨찾기