Исходный пост, с которым вы работали, имел LinearLayout в качестве родительского макета, а не RelativeLayout , как у вас.Когда вы добавляете вид (или другой макет) к LinearLayout
, он позиционируется ниже (когда LinearLayout
имеет вертикальную ориентацию) любых существующих элементов в макете.Однако элементы в RelativeLayout
должны использовать свойства позиционирования, чтобы определить, где они будут находиться в RelativeLayout
, поэтому каждый раз, когда вы добавляете новый макет, RepeatingLayout
, поскольку вы не меняете параметры макета, представление/ макет добавляется поверх существующего вида / макета.Поэтому измените родительский макет на LinearLayout
в вашем файле макета, и тогда это должно сработать:
LinearLayout parent = FindViewById<LinearLayout>(Resource.Id.parentLayout);
for (int i = 0; i < 4; i++)
{
var view = LayoutInflater.Inflate(Resource.Layout.RepeatingLayout, null);
var tv = view.FindViewById<TextView>(Resource.Id.textViewSample);
tv.Text = i.ToString() + " Android application is debugging";
parent.AddView(view);
}
Попытка сделать то же самое с RelativeLayout
, поскольку родительский макет сильно усложняет вещи без необходимости.