【发布时间】:2015-07-31 18:22:41
【问题描述】:
我正在创建一个在 LinearLayout 中有四个不同 TextView 的应用程序。 LinearLayout 的权重总和为 4,每个 TextView 的权重为 1(以使它们具有均匀的宽度)。 我的第一个问题是其中两个 TextView 的高度比其他两个大,这使它们居中,但我希望它们与 LinearLayout 顶部对齐,因此所有 TextView 都有一条直线。
我的第二个问题是其中一个字符串比 TextView 的宽度长,这使得 TextView 稍微向下(它甚至不再居中并且在 LinearLayout 父级之外,所以所有 TextView 宽度都是未显示)。
我的代码:
LinearLayout layout = new LinearLayout(context);
LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(layoutParams);
layout.setWeightSum(lessons);
for (int i = 0; i < lessons; i++) {
TextView text = new TextView(context);
LayoutParams textParams = new LayoutParams((int) (0 * (context.getResources().getDisplayMetrics().density) + 0.5f),
(int) (length[i] * (context.getResources().getDisplayMetrics().density) + 0.5f), 1);
text.setLayoutParams(textParams);
System.out.println(length[i]);
text.setPadding((int) (8 * (context.getResources().getDisplayMetrics().density) + 0.5f), 0, 0, 0);
text.setTextColor(context.getResources().getColor(R.color.white_text));
text.setBackgroundColor(context.getResources().getColor(R.color.class.getField(name[i]).getInt(null)));
text.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
text.setGravity(Gravity.CENTER_VERTICAL);
text.setText(R.string.class.getField(name[i]).getInt(null));
layout.addView(text);
}
week[day].addView(layout);
【问题讨论】:
-
2 建议 .... 1-) 移动到 RelativeLayout ,2-) 改用 xml 布局
-
@Muhannad Fakhouri 我将测试RelativeLayout,但xm 不是一个选择,因为布局需要根据用户选择动态。
标签: android android-layout alignment android-linearlayout textview