2013-05-27 108 views
0

如何在GridView中只設置第一行顏色?我試圖使用這個代碼,但是這個效果很好,直到我在網格中滾動,比我用我的顏色設置多個單元格。 任何人都可以幫助我嗎?如何在GridView中設置第一行顏色

public View getView(int position, View convertView, ViewGroup parent) { 
    View view = convertView; 

    if (convertView == null) { 

     LayoutInflater li = getLayoutInflater(); 
     view = li.inflate(R.layout.main, null); 
    } 

    if (position == 0) 
     view.setBackgroundColor(0x30FF0000); 
    return view; 

} 

回答

1

這是因爲查看重用。當您滾動時彈出的convertView與從另一側出來的相同的再循環視圖相同。所以它仍然有前面設定的背景。您可以添加此行以防止出現這種情況:

public View getView(int position, View convertView, ViewGroup parent) { 
    View view = convertView; 

    if (convertView == null) { 

     LayoutInflater li = getLayoutInflater(); 
     view = li.inflate(R.layout.main, null); 
    } 

    if (position == 0) 
     view.setBackgroundColor(0x30FF0000); 
    else view.setBackgroundColor(/*default color for the other rows*/); 
    return view; 

} 
1

如果(位置== 0) view.setBackgroundColor(0x30FF0000);其他 view.setBackgroundColor(0x00000000);

適配器總是有緩存

相關問題