无法将多个子视图添加到父视图

时间:2015-05-30 11:59:58

标签: android android-linearlayout relativelayout layout-inflater

我正在尝试将多个相对布局添加到线性布局。我使用以下代码行。

        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);
        }

但我只能看到一个孩子的观点。谁能告诉我哪里出错了。

2 个答案:

答案 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。