Я создаю приложение, которое имеет четыре разных TextView внутри LinearLayout. LinearLayout имеет весовую сумму 4 и каждый TextView имеет вес 1 (чтобы сделать их с равномерной шириной). Моя первая проблема заключается в том, что два из TextViews имеют большую высоту, чем две другие, и это делает их центрированными, но я хочу, чтобы они были выровнены по вертикали с LinearLayout, поэтому все текстовые объекты имеют прямую линию.Выровнять TextViews до LinearLayout
Моя вторая проблема заключается в том, что одна из строк длиннее ширины 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 layout вместо –
@Muhannad Fakhouri Я проведу RelativeLayout, но xm вещь не является выбором, так как макет должен быть основан на динамике по выбору пользователя. – WeeRox