将子视图(LinearLayout)按比例顺序添加到android中的LinearLayout

将子视图(LinearLayout)按比例顺序添加到android中的LinearLayout,android,android-linearlayout,Android,Android Linearlayout,我是android开发新手,我想通过编程将LinearLayout视图添加到父LinearLayout。在这样做的同时,我希望按顺序看到它们。也就是说,首先添加的视图应该是第一个,其次添加的视图应该是第二个,依此类推。 我试着和你一起做 HolderLayout.addView(view, index) 索引继续递增,但对我来说不起作用。我首先添加的视图显示在列表的第二个视图中。我该怎么办? 我的代码大纲是: int index = 0; View Row1 = Vie

我是android开发新手,我想通过编程将LinearLayout视图添加到父LinearLayout。在这样做的同时,我希望按顺序看到它们。也就是说,首先添加的视图应该是第一个,其次添加的视图应该是第二个,依此类推。 我试着和你一起做

   HolderLayout.addView(view, index) 
索引继续递增,但对我来说不起作用。我首先添加的视图显示在列表的第二个视图中。我该怎么办? 我的代码大纲是:

    int index = 0;
    View Row1 = View.inflate(this, R.layout.childView, null);

    //populate the appropriate data on the child Row and add it to the holder layout.

    holder_layout.addView(Row1 , index);
    index++;
    Set<Integer>keys = MyMap.keySet();

    for(int i : keys){


          View row = View.inflate(this,  
                                   R.layout.childView, null);

          holder_layout.addView(row , index);
          index++;

   }
int索引=0;
视图行1=视图。充气(此,R.layout.childView,null);
//填充子行上的相应数据,并将其添加到支架布局中。
holder_layout.addView(第1行,索引);
索引++;
Setkeys=MyMap.keySet();
用于(int i:键){
视图行=视图。充气(此,
R.layout.childView,空);
holder_layout.addView(行、索引);
索引++;
}
我哪里出错了。

请执行以下操作:

holder_layout.addView(row , new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));

我认为您不必指定索引,因为默认行为是根据需要添加上面的内容

如果没有其他内容,可能会影响此代码的内容在循环结束时递增
索引
Row1
将添加到位置0,然后循环的第一次迭代将把第一行
也分配给索引0。
我猜这会做什么,就是在
行1
之前添加
,并相应地更新索引;因此,在循环的第二次迭代中,它使用
index=1
,将其放在
Row1
之前,依此类推,直到最终结果看起来像
ViewGroup{row[0],row[1],row[2]…row[n]Row1}


鉴于您声称看到的就是这种行为,我敢说这是您的代码的真正问题。尽管如前所述,您可能应该使用不带索引的
addChild(View)
,依靠默认行为将其添加到末尾。不幸的是,没有具体说明这一点,但我刚刚测试了它,并确认它就是这样工作的。

定义不工作。什么不起作用?实际发生了什么?我在for循环之外添加的行是我得到的最后一项,实际上它应该是第一项?正确的?当我在索引=0处添加它时?如果您使用垂直方向的线性布局,它将自动按顺序添加新视图是的,线性布局是垂直的,它不会按顺序添加!