为代码中的活动创建按钮

时间:2013-01-12 15:42:37

标签: android

当第一个按钮阵列太大时,我看不到最后一个按钮(bx),例如大小为12,当大小为2时,我看到它。为什么按钮不会转换到第二行。

protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        LinearLayout linLayout = new LinearLayout(this);
        linLayout.setOrientation(LinearLayout.HORIZONTAL); 
        LayoutParams linLayoutParam = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
        setContentView(linLayout, linLayoutParam);
        int size=20;
        Button[] mButtonsArray = new Button[size];

        LayoutParams Lpx= new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

        for (int i=0; i< size;i++) 
        {
       mButtonsArray[i]= new Button(this);
            mButtonsArray[i].setText(name);
            linLayout.addView(mButtonsArray[i], Lpx);
        }
       Button bx = new Button(this);
       bx.setText("back");
        linLayout.addView(bx, Lpx);
    }

3 个答案:

答案 0 :(得分:0)

  

为什么按钮不会转换到第二行

因为这不是水平LinearLayout的工作方式。它横向定位所有孩子。

答案 1 :(得分:0)

因为,您的LinearLayout linLayout有重力HORIZONTAL

linLayout.setOrientation(LinearLayout.HORIZONTAL); 

如果您要在第二行添加最后一个按钮,则必须使用VERTICAL创建 Root LinearLayout ,然后使用LinearLayout添加父HORIZONTAL的其他按钮} gravity并使用Gravity VERTICAL将此LinearLayout添加到Main Root LinearLayout。

答案 2 :(得分:0)

LinearLayout视图不会换行。因此按钮将超过屏幕的右边缘,因此不可见。

您可能想要探索GridView

[http://developer.android.com/reference/android/widget/GridView.html][1]