簡體   English   中英

ListView-突出顯示行的顏色

[英]ListView - highlight color of a tapped row

我有一個帶有自定義行的ListView 它們在ArrayAdaptergetView()方法中設置了不同的背景色:

row.setBackgroundColor(R.color.list_bg);

設置顏色后,我失去了點擊行的高光顏色/動畫。 如果在背景中添加一些透明度,則可以看到高光和動畫,但這不是我想要解決的方式。

是否有可能以某種方式設置“突出顯示顏色”?

您可以通過使用顏色或圖像創建可繪制對象來在行上設置自定義背景。 例如在res/drawable/

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <solid android:color="@color/colorPressEffect"/>
        </shape>
    </item>
    <item android:state_pressed="false">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent"/>
        </shape>
    </item>
</selector>

並將此drawable設置為行布局父layout.like上的背景

 <LinearLayout 
        ...
        ...
         android:background="@drawable/background"
        >

通過這種方式,您可以在點擊時獲得任何動畫,在可繪制對象上投入的精力越多,您獲得的點擊就越多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM