如何在android中将线性布局的所有元素设置为相同的宽度?

时间:2013-08-03 20:11:20

标签: java android android-linearlayout

在我的Android应用程序中,我想创建1行3列的线性布局。然后在每个单元格中添加一个包含1列和2行的新线性布局。

目前它确实如此,但三个单元格中的每一个的宽度都包裹内容,因此主线性布局的总宽度小于屏幕宽度。我希望它匹配屏幕宽度,然后水平居中三个单元格中每个内容的内容。

有谁知道如何解决这个问题?

由于

这是我的代码

    LinearLayout layout = new LinearLayout(this);
    layout.setWeightSum(1);
    layout.setOrientation(LinearLayout.HORIZONTAL);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
    layout.setLayoutParams(params);

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

    // ---------
    LinearLayout Celllayout = new LinearLayout(this);
    Celllayout.setOrientation(LinearLayout.VERTICAL);
    Celllayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));

    TextView titleView = new TextView(this);
    titleView.setLayoutParams(lparams);
    titleView.setText("Use This");

    RadioButton useMapRadio = new RadioButton(this);

    Celllayout.addView(titleView);
    Celllayout.addView(useMapRadio);

    layout.addView(Celllayout);
    // ---------
    Celllayout = new LinearLayout(this);
    Celllayout.setOrientation(LinearLayout.VERTICAL);
    Celllayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));

    titleView = new TextView(this);
    titleView.setLayoutParams(lparams);
    titleView.setText(date);

    ImageButton imagebutton = new ImageButton(this);
    imagebutton.setImageResource(R.drawable.calendar);
    imagebutton.setBackgroundResource(0);

    Celllayout.addView(titleView);
    Celllayout.addView(imagebutton);

    layout.addView(Celllayout);
    // ---------
    Celllayout = new LinearLayout(this);
    Celllayout.setOrientation(LinearLayout.VERTICAL);
    Celllayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));

    titleView = new TextView(this);
    titleView.setLayoutParams(lparams);
    titleView.setText("Delete");

    imagebutton = new ImageButton(this);
    imagebutton.setImageResource(R.drawable.x);
    imagebutton.setBackgroundResource(0);

    Celllayout.addView(titleView);
    Celllayout.addView(imagebutton);

    layout.addView(Celllayout);
    // ---------

    linearlayout.addView(layout);

2 个答案:

答案 0 :(得分:1)

这是水平布局中的3个textView,主要思想是:所有项目的宽度 row必须是== 0,并且所有项的权重必须相同       

                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:text="@string/start_training"
                    android:textColor="#84d9f4"
                    android:textSize="18sp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/textView4"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:text="@string/upd_params"
                    android:textColor="#84d9f4"
                    android:textSize="18sp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/textView5"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="df"
                    />
            </LinearLayout>

答案 1 :(得分:0)

使用样式,它的作用类似于CSS :: Styles in Android

是的,用XML格式制作布局会更好