在我的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);
答案 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格式制作布局会更好