簡體   English   中英

listview項目背景顏色更改

[英]listview item background color change

我正在開發一個android應用程序。 我已經使用創建了一個列表視圖

setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arrayname));   
getListView().setTextFilterEnabled(true);   

現在,我想更改所選項目的顏色。 我可以通過放置更改所選項目的背景

listviewobject.getChildAt(position).setBackgroundColor(Color.BLACK);

在onListItemClick()中

這段代碼正在更改背景顏色,但是如果我選擇任何其他列表項,那么先前單擊的列表項的顏色也是紅色。因此,我可以通過以下方式更改先前單擊的列表項的顏色:

l.getChildAt(prevpos).setBackgroundColor(Color.BLACK);

現在的問題是,如果我將先前單擊的listitems的背景顏色更改為黑色。然后我看不到該特定listitem上的文本。我再次單擊則只能看到該項目上的文本,因此看起來很奇怪。請幫我朋友

在瀏覽了許多帖子和博客之后,我發現此解決方案對我有用。

全局聲明行變量

public View row;

your_list.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> a, View v,
                        int position, long id) {

    if (row != null) {
        row.setBackgroundResource(R.color.orange);
    }
    row = v;
    v.setBackgroundResource(R.color.transparent_green);
)};

很好地在列表視圖的屬性中使用此幫助:

android:listSelector="@drawable/list_selector"

它將自動將所選的可繪制對象設置為所選項目的背景。 希望這對您有用,drawable可能是您自己選擇的顏色。

說明:將圖像帶添加到您的drawables文件夾,然后在列表視圖的listSelector屬性中設置該圖像。 現在,您將在列表視圖中導航,列表視圖的背景將是您設置的圖像帶的顏色,而不是android的本機顏色。 希望你現在得到它... :-)

我發生這種情況是因為您將文本顏色設置為黑色,而將背景顏色設置為黑色,這就是為什么看不到差異的原因。 要設置背景色,您可以使用以下行。

view.setBackgroundColor(Color.YELLOW);

使用與文本顏色不同的顏色。

默認情況下,背景為黑色。 如果您已自定義列表視圖,則在滾動時它將變為黑色。 因此,當您定義列表視圖時,將背景緩存顏色設置為所需的顏色,如下所示:

    yourlistView.setCacheColorHint(Color.WHITE);

您可以做的是,不要將.setBackgroundColor()與Color值一起使用, .setBackgroundColor()創建一個顏色狀態列表 ,並使用.setBackgroundResource()對其進行分配。 這樣,您可以根據列表的當前狀態定義列表項可以變為的各種狀態。

暫無
暫無

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

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