2012-02-27 2 views
1

Я хочу создать свою RelativeLayout программно с помощью LayouInflater, но он выдает ошибку на методе AddView, Heres мой код:LayoutInflater Mono для Android

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/relativeAgedSummary"  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
</RelativeLayout> 

ViewGroup relativeAgedSummary=FindViewById<ViewGroup>(Resource.Id.relativeAgedSummary); 
View view = this.LayoutInflater.Inflate(
           Resource.Layout.aged_summary_list_item, 
           relativeAgedSummary, false);  

for (int i = 0; i < agedValues.Count; i++) { 
    var row = agedValues.ElementAt(i); 
    if(row.Range == 0 && row.IsTotal == false) 
    { 
     RelativeLayout rl = view.FindViewById<RelativeLayout>(
              Resource.Id.relativeLayoutAgedSummaryItem); 
     rl.SetBackgroundResource(Resource.Color.lightBlue); 
     if(contA==0) 
     { 
      TextView tv = (TextView)view.FindViewById(Resource.Id.txtAgedSummary); 
      tv.SetText(labelsAgedSummary[row.Range], TextView.BufferType.Normal); 
      contA++; 
     }   
     relativeAgedSummary.AddView(view); 
    } 
+0

Какая ошибка, которую он выбрасывает? http://docs.xamarin.com/android/advanced_topics/android_debug_log –

+0

Исправлено, но теперь я хочу добавить более реалистичный макет, и он появляется только один – arkmetal

ответ

3

Что вы имеете в виду «появляется только один». Если вы пытаетесь добавить несколько экземпляров, чтобы relativeAgedSummary тогда вам придется повторно раздуть aged_summary_list_item каждый раз:

for (int i = 0; i < agedValues.Count; i++) 
{ 
    View view = this.LayoutInflater.Inflate(
        Resource.Layout.aged_summary_list_item, 
        relativeAgedSummary, false); 

    var row = agedValues.ElementAt(i); 

    // the logic here... 

    relativeAgedSummary.AddView(view); 
} 

Это потому, что вы пытаетесь добавить один и тот же объект несколько раз. Он будет игнорировать добавление. И затем в цикле вы несколько раз изменяете один и тот же элемент, что приводит к тому, что он выглядит как добавленный только «последний» элемент.