我正在尝试将多个相对布局添加到线性布局。我使用以下代码行。
LayoutInflater inflator = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout item = (LinearLayout)findViewById(R.id.reviews);
for(int i=0 ; i<2 ; i++){
View child = inflator.inflate(R.layout.review_item, null);
child.setId(i);
child.setTag(i);
item.addView(child);
}
但我只能看到一个孩子的观点。谁能告诉我哪里出错了。
答案 0 :(得分:1)
在for循环之外声明LinearLayout item
。
每次运行for循环时,您执行此操作的方式将覆盖变量值。所以你的方法应该是这样的:
public void somemethod(){
LayoutInflater inflator = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout item = (LinearLayout)findViewById(R.id.reviews);
for(int i=0 ; i<2 ; i++)
{
View child = inflator.inflate(R.layout.review_item, null);
child.setId(i);
child.setTag(i);
item.addView(child);
}
}
答案 1 :(得分:1)
你需要在for循环之外取前两行。你正在给LinearLayout充气两次,这会覆盖你膨胀的第一个布局,而不是添加它。通过在for循环开始之前放置这两行,您可以将两个子视图添加到单个LinearLayout。