【发布时间】:2017-06-05 08:36:41
【问题描述】:
我使用数据库值以编程方式创建 Android 视图。但我不知道如何对齐元素。我正在创建 LinearLayout 但它没有正确对齐。 我的实际输出是
预期输出
我的代码
lView = new LinearLayout(Main2Activity.this);
// lView.setPadding(0,150,0,0);
lView.setBackgroundColor(Color.parseColor("#FFFFFF"));
lView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
LinearLayout.LayoutParams l2 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
l2.gravity=Gravity.CENTER;
GradientDrawable gd3 = new GradientDrawable();
gd3.setCornerRadius(30);
gd3.setColor(Color.parseColor("#003366"));
gd3.setStroke(0, 0xFF000000);
et1.setGravity(Gravity.CENTER);
et1.setHint("Select Date");
et1.setBackgroundDrawable(gd3);
lView.setOrientation(LinearLayout.VERTICAL);
lView.addView(et1);
GradientDrawable gd4 = new GradientDrawable();
gd4.setCornerRadius(30);
gd4.setColor(Color.parseColor("#5CB85C"));
gd4.setStroke(3, 0xFFFFFFFF);
Intime = new TextView(Main2Activity.this);
Intime.setHint("Select In Time");
Intime.setTextColor(Color.WHITE);
Intime.setHintTextColor(Color.WHITE);
Intime.setTextSize(20);
Intime.setHeight(150);
Intime.setWidth(600);
Intime.setGravity(Gravity.CENTER);
Intime.setLayoutParams(l2);
Intime.setBackgroundDrawable(gd4);
lView.setOrientation(LinearLayout.HORIZONTAL);
lView.addView(Intime);
Outtime = new TextView(Main2Activity.this);
Outtime.setHint("Select Out Time");
Outtime.setTextSize(20);
Outtime.setHeight(150);
Outtime.setWidth(600);
Outtime.setGravity(Gravity.CENTER);
Outtime.setTextColor(Color.WHITE);
Outtime.setHintTextColor(Color.WHITE);
Outtime.setLayoutParams(l2);
Outtime.setBackgroundDrawable(gd4);
lView.setOrientation(LinearLayout.HORIZONTAL);
lView.addView(Outtime);
【问题讨论】:
-
您应该使用RelativeLayout 或嵌套的LinearLayout。如果您使用嵌套的线性布局,则顶部布局必须是垂直方向的,而内部布局必须是水平方向的。