orientation=verticalのLinearLayoutにorientation=horizontalのLinearLayoutを動的に2つ作成し、挿入する方法で2×2のLayoutを作成したいのですが、0番目と2番目のFlameLayoutが画面幅を専有してしまって、1番目と3番目のFlameLayoutが表示されません。
以下のコードが私の考えたアルゴリズムです。

private void setView(List<item> items){
  int viewCount=0;
  LinearLayout horizontalHolder = getHorizontalHolder();
  while(viewCount!=items.size()){
    if(viewCount==2){
      mVerticalHolder.addView(horizontalHolder);
      horizontalHolder = getHorizontalHolder();
    }
    FrameLayout itemView = (FrameLayout)mInflater.inflate(R.layout.item_layout, horizontalHolder, false);

    /*Viewセット*/

    horizontalHolder.addView(item_view);
    viewCount++;
  }
}

private LinearLayout getHorizontalHolder(){
  LinearLayout horizontalholder = new LinearLayout(this);
  horizontalHolder.setOrientation(LinearLayout.HORIZONTAL);
  return horizontalHolder;
}

アルゴリズムを色々変えたのですが、結局解決策を発見できませんでした。
もし、このコードを見てどこを修正すればいいかがわかれば教えていただければありがたいです。よろしくおねがいします。