0

我正在尝试将相对布局动态添加到我的 mainLayout (这也是一个相对布局)。我有它,以便您可以通过单击按钮多次添加布局。但我想要它,以便添加的第一个布局在屏幕的左侧,第二个布局在中间,第三个布局在右侧,等等......我使用模数运算符做到了这一点,但它不起作用。

下面是我的代码

LinearLayout mLinearLayout;
RelativeLayout rlcopy;
RelativeLayout[] rArray = new RelativeLayout[20];
int counter = 1;
RelativeLayout llcustomrow;
RelativeLayout.LayoutParams relativeLayoutParams; 

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    mLinearLayout = (LinearLayout) inflater.inflate(
            R.layout.customworkout, container, false);

    llcustomrow = (RelativeLayout)mLinearLayout.findViewById(R.id.llcustomrow);

    for(int i = 1;i<rArray.length-1;i++){
        rArray[i] = (RelativeLayout)View.inflate(getActivity(), R.layout.addworkoutlayout, null); 

        if(i%3 == 1 ){
            rArray[i].setGravity(Gravity.LEFT);
        }else if(i%3 == 2){
            rArray[i].setGravity(Gravity.CENTER_HORIZONTAL);
        }else{
            rArray[i].setGravity(Gravity.RIGHT);
        }

    }

    Button bAdd = (Button) mLinearLayout.findViewById(R.id.bAddExcercise);



    bAdd.setOnClickListener(new OnClickListener() {         
        @Override
        public void onClick(View v) {
             llcustomrow.addView(rArray[counter]);  
             counter++;
        }
    });


    return mLinearLayout;
}

我相信问题出在我设置重力的地方,我认为它没有做任何事情

4

1 回答 1

0

您为什么不想将片段用于这些目的?您可以使用三个权重为 1 的框架,例如,在主布局文件中具有水平方向的 LinearLayout 中。然后为每个框架创建三个布局。对于以前的动态工作,您可以使用 FragmentManager 和 FragmentTransaction。请阅读它们。

于 2013-08-14T07:32:49.007 回答