2015-05-25 30 views
1

,默認情況下ListView的項目有一個「點擊」動畫,當用戶點擊他們 enter image description here被點擊動畫的設計後曠古<shape>

現在,我想設計在ListView的項目,並添加android:background="@drawable/border" 自己的XML佈局定義

繪製時/ border.xml被定義爲:

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

<stroke android:width="1.5dp" android:color="#000000" /> 
<solid android:color="#ffe5d226"/> 
<padding 
    android:left="7dp" 
    android:top="7dp" 
    android:right="7dp" 
    android:bottom="0dp" /> 
<corners android:radius="4dp"/> 
</shape> 

這樣ListView的項目之後[在下面的圖片中,我點擊「週三」] enter image description here

改變形狀和顏色,我想,然而,「點擊」動畫走後我一直試圖解決這個很長的時間,但沒有成功:\ 我怎樣才能檢索「點擊」動畫,同時保持項目設計?

回答

1

我的問題找到了解決辦法由@drawable文件夾創建:

1) 「未點擊」 背景佈置到名爲not_clicked_layout.xml 像ListView項:

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

<stroke android:width="1.5dp" android:color="#000000" /> 
<solid android:color="@color/green"/> 
<padding 
    android:left="7dp" 
    android:top="7dp" 
    android:right="7dp" 
    android:bottom="0dp" /> 

<corners android:radius="4dp"/> 
</shape> 

2 )「單擊」到ListView項目的背景佈局,即它看起來像用戶推送它的那一刻。命名clicked_layout.xml 像:

<?xml version="1.0" encoding="utf-8"?> 
<shape 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<solid android:color="@color/gold"/> 
<stroke android:width="1.5dp" android:color="#000000" /> 

<padding 
    android:left="7dp" 
    android:top="7dp" 
    android:right="7dp" 
    android:bottom="0dp" /> 
<corners android:radius="4dp"/> 
</shape> 

3)最後也是最重要的佈局,通過創建一個名爲最後一個佈局枝前兩個步驟之一:list_selector.xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:state_pressed="false" 
    android:drawable="@drawable/not_clicked_layout" /> 

<item android:state_pressed="true" 
    android:drawable="@drawable/clicked_layout" /> 

</selector> 

的上面的佈局會聲明在未按下項目時顯示的「not_clicked_layout.xml」,按下項目時會顯示「clicked_layout」。

4)所有剩下要做的就是補充:

android:background="@drawable/list_selector" 

你的ListView項和「點擊」動畫的佈局將從死:)

注意出現 :該解決方案不僅與ListView項目相關,而且與您想創建「推送」動畫的GUI元素相關。