我点击了以下链接,使用充气器和AddView()多次动态添加布局
Is there a way to programmatically create copies of a layout in android?
我使用循环来创建多个条目。但是只有一个条目即将出现,这是最后一个循环索引的结果
下面是我的C#代码
我只能看到父母内部的一个孩子,这是最后一个循环的结果。 我错过了什么?
var parent = FindViewById<RelativeLayout>(Resource.Id.ParentLayoutWrapper);
for (int i = 0; i < 4; i++)
{
var view = LayoutInflater.Inflate(Resource.Layout.RepeatingLayout, parent, false);
var txtView = view.FindViewById<TextView>(Resource.Id.textViewSample);
txtView.Text = i.ToString()+ " Android application is debugging";
txtView.Id = i;
parent.AddView(view, i);
}
答案 0 :(得分:0)
您工作的原始帖子以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
做同样的事情,因为父布局会不必要地使事情复杂化。