0

Я создаю приложение, которое имеет четыре разных 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); 
+0

2 советов .... 1-) перейдите в RelativeLayout, 2-) используйте xml layout вместо –

+0

@Muhannad Fakhouri Я проведу RelativeLayout, но xm вещь не является выбором, так как макет должен быть основан на динамике по выбору пользователя. – WeeRox

ответ

0

Поскольку каждый пользователь должен видеть только один из этих текстовых элементов, на основе которых они принадлежат, я сделаю его пользовательской настройкой и отображать только правильный TextView для этого пользователя.

0

разместить код XML ... но мне кажется, что вы не устанавливая высоту или ширину 0dp (по высоте, если это вертикальное расположение/ширина, если горизонтальная) ... также, убедитесь, что все ваши текстовые элементы имеют атрибут android: singleLine = "true"

Смежные вопросы