2009-09-09 17 views
9

Özel bir numaralı telefonu kullanıyorum bir ListView var. Bağdaştırıcının içinde (getView(int, View, ViewGroup) yönteminde)'un arka plan rengini setBackgroundColor(int) kullanarak ayarlıyorum. Sorun şu ki arka plana hangi rengi koyuyor olursam her zaman koyu bir gri ortaya çıkıyor. Işık temasını kullandığımı da belirtmek gerekir. kodAndroid Liste Görünümü her zaman gri gösteriliyor gri

İlgili (basitleştirilmiş) bitleri:

AndroidManifest.xml:

<activity 
    android:name=".MyActivity" 
    android:theme="@android:style/Theme.Light" /> 

MyAdapter.java:

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = LayoutInflater.from(mContext); 
    View av = inflater.inflate(R.layout.my_row, parent, false); 
    av.setBackgroundColor(R.color.myRow_red); 
    mName = (TextView) av.findViewById(R.id.myRow_name); 
    mName.setText("This is a name"); 
    return av; 
} 

Herhangi bir fikir/öneri?

cevap

22

Sen kullanmalıdır: setBackgroundResource(R.color.myRow_red) yerine setBackgroundColor(). Örneğinizde arka plan renginde, kaynaklarda açıklanan gerçek renk yerine kimliği atanmıştır.

+0

teşekkürler hayat kurtarıcısın :) – user1940676

+0

Benzer bir durum var ama bu çözümü şekiller için kullanamıyorum. Burada daha ayrıntılı bir soru sordum: http://stackoverflow.com/questions/39820240/android-canvas-drawrect-colour-always-shows-as-grey – Vedant261

6

cacheColorHint özniteliğini, listenizin istenen arka plan rengine ayarlamanız gerekir. Android, listelerinde bir çizim optimizasyonu hesaplamak için gerekli bir geçici çözümdür.

Buraya bakın: link text

+0

Bu doğru ve arka plan renginizi dinamik olarak değiştirmeniz gerekmiyorsa, my_row.xml düzen dosyanızda sadece android: background = "# FF0000" ekleyebilirsiniz. –

+0

midj: Bu aslında benim durumumda doğru değil, sadece basitleştirilmiş bir örnek görüyorsunuz. –

+0

@fiXedd: o zaman probleminiz nedir? Renk önbelleği yardımını devre dışı bırakmadı mı? – Matthias

0

Üşüdünüz her zaman sıranın her zaman başka bir görünüme sarın ve bu görünümde arka plan rengini ayarlayın. Bu görüş, satırın ilk (ve sadece) çocuğu olurdu.

0

bu deneyin:

setBackgroundColor(0xFF5DB9FB); 
0

deneyin böyle yapmalı: bölücü gri geliyordu nerede benzer bir sorunla karşılaştık

av.setBackgroundColor(getResources().getColor(R.color.myRow_red));

2

. Diğer çözümlerin hiçbir etkisinin olmadığını, ancak ListView üzerinde android:divider="<drawable,color, or whatever>" çalıştım.

İlgili konular