1

我正在尝试在(Gridview/LinearLayout/TableLayout)中添加动态创建的按钮,我不知道它们中的哪一个要使用。每个按钮都有不同的宽度。这是我假装做的一个例子:

演员:

[按钮:理查德基尔] [按钮:Bla bla bla bla] [按钮:次要演员鲍勃]
[按钮:里卡多蒙托亚]

类型:

[按钮:戏剧] [按钮:喜剧]

电影院:

[按钮:天堂电影院] [按钮:电影院 2] [按钮:电影院 3]
[按钮:电影院 4] .... [按钮:电影院 N]

我怎样才能动态地分配它们?先感谢您。

4

1 回答 1

2

如果您想以编程方式添加它们,您可以在垂直线性布局中使用水平线性布局来保留您的按钮。

这是一个示例代码:

 LinearLayout InitQuiteSomeButtons(Button[] butts,int buttonsPerRow)
{

    LinearLayout vlay = new LinearLayout(this);
    LinearLayout.LayoutParams vParams= new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    vlay.setLayoutParams(vParams);
    vlay.setOrientation(LinearLayout.VERTICAL);
    LinearLayout hLay=new LinearLayout(this);
    LinearLayout.LayoutParams hParams= new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
    hLay.setLayoutParams(hParams);
    hLay.setOrientation(LinearLayout.HORIZONTAL);

    for (int i=0;i<butts.length;i++)
    {
        if (i>0 && i%buttonsPerRow==0)
        {
            vlay.addView(hLay);
            hLay = new LinearLayout(this);
            hLay.setLayoutParams(hParams);
            hLay.setOrientation(LinearLayout.HORIZONTAL);
        }
        hLay.addView(butts[i]);

    }
    if (butts.length%buttonsPerRow==0)
    {
        //add the non-filledrow
        vLay.addView(hLay);
    }
    return vlay;
}
于 2012-11-06T14:11:25.873 回答