2017-11-11 96 views
0

我想使我的ListView中的行以替代顏色 - Xamarin.AndroidC#項目。Xamarin.Android替代顏色列表

這裏是我的代碼

ListView DialogoList = (ListView)FindViewById(Resource.Id.DialogoList); 
Data data = new Data(); 
string[] dialogolist = data.Dialogo(Data.level, Data.Lesson); 
DialogoList.Adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1, dialogolist); 
+1

創建自定義適配器,覆蓋GetView並根據位置更改顏色 –

+0

是的,它的工作原理,謝謝.. @ YorkShen-MSFT –

回答

1

正如@Nongthonbam Tonthoi說,你可以根據位置覆蓋GetView顏色:

例如:

public override View GetView(int position, View convertView, ViewGroup parent) 
{ 
    var item = items[position]; 
    View view = convertView; 
    if (view == null) // no view to re-use, create new 
     view = context.LayoutInflater.Inflate(Resource.Layout.CustomView, null); 

    view.FindViewById<TextView>(Resource.Id.Text1).Text = item.Heading; 
    view.FindViewById<TextView>(Resource.Id.Text2).Text = item.SubHeading; 
    view.FindViewById<ImageView>(Resource.Id.Image).SetImageResource(item.ImageResourceId); 

    if (position % 2 == 0) 
    { 
     view.FindViewById<RelativeLayout>(Resource.Id.listView_item_bg).SetBackgroundColor(Color.Pink); 
    } 
    else 
    { 
     view.FindViewById<RelativeLayout>(Resource.Id.listView_item_bg).SetBackgroundColor(Color.Blue); 
    } 
    return view; 
} 

有關完整的代碼,你可以參考到這個sample

Effect

+0

謝謝,它的工作原理! –