2014-06-11 2 views
2

Buttons 및 ListView 항목에 대한 선택기를 구현할 때 state_pressed 및 state_focused에 동일한 항목/배경을 다시 사용하고 싶습니다.Android : 레이어 목록을 다시 사용할 수 있습니까?

XML '코드'를 복제하는 대신? 문자를 다시 사용할 수 있습니까?

여기 state_pressed 'code'가 있습니다 - state_focused를 사용하여 'code'의 동일한 덩어리를 모두 복제하지 않고 어떻게 사용할 수 있습니까?

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

    <item android:state_pressed="true"> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <!-- PDS: Side lowlight lines Inset so hidden underneath solid colour --> 
    <item android:bottom="0dp" android:right="0dp" android:top="0dp" android:left="0dp"> 
     <shape> 
      <solid android:color="#00000000" /> 
      <stroke android:color="@color/butGreySelectFrame" android:width="4dp"/> 
      <corners android:radius="4dp" />    
     </shape>  
    </item> 

    <!-- PDS: Solid colour --> 
    <item android:left="4dp" android:right="4dp" android:top="4dp" android:bottom="4dp">    
     <shape> 
     <solid android:color="@color/butGreySelectBack" /> 
     <padding 
      android:left="10dp" 
      android:top="10dp" 
      android:right="10dp" 
      android:bottom="10dp" /> 
     </shape> 
     </item> 

    </layer-list> 
</item> 

답변

6

예, 임의의 드로어 블을 셀렉터에서 다시 사용할 수 있습니다.

는 그때 대신 item의 블록 내부 전체 레이어 목록을 넣는

<item android:state_xxx android:drawable="@drawable/the_resource" /> 
2

그것을 참조의 layer-list에 대해 별도의 파일을 만듭니다. 레이어 목록에 대해 별도의 파일을 만들고 선택기 항목에 드로어 블로 설정할 수 있습니다.

예 :

<?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/layer-list"/> 
    <item android:drawable="@drawable/layer-list_default"/> //this is the default state 

</selector> 

보조 노트 :

것은 당신이 당신의 선택에 기본 프레스 당김 또는 선택 못해 일이 있는지 확인합니다.

관련 문제