0

我没有看到最后一个按钮(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);
    }
4

3 回答 3

0

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

因为这不是水平的LinearLayout工作方式。它水平放置所有孩子。

于 2013-01-12T15:46:54.223 回答
0

因为,你LinearLayout linLayout有重力HORIZONTAL

linLayout.setOrientation(LinearLayout.HORIZONTAL); 

如果你想在第二行添加最后一个按钮,那么你必须创建一个Root LinearLayout,然后添加其他带有重力VERTICAL的父按钮,然后将此 LinearLayout 添加到带有 Gravity 的 Main Root LinearLayout 。LinearLayoutHORIZONTALVERTICAL

于 2013-01-12T15:47:18.897 回答
0

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

您可能想探索 GridView

[http://developer.android.com/reference/android/widget/GridView.html][1]
于 2013-01-12T15:48:15.580 回答