0

我創建了一個應用程序,它具有LinearLayout中的四個不同的TextView。 LinearLayout的權重總和爲4,每個TextView的權重爲1(使它們的寬度均勻)。 我的第一個問題是兩個TextView的高度比另外兩個高,這使它們居中,但我希望它們與LinearLayout頂部對齊,因此所有的TextView都有一條直線。將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佈局代替 –

+0

@Muhannad Fakhouri我將測試RelativeLayout,但是xm不是一個選擇,因爲佈局需要基於動態在用戶選擇上。 – WeeRox

回答

0

由於每個用戶只需要根據屬於哪個組來查看其中一個TextView,我會將其設置爲用戶設置並只顯示該用戶的正確TextView。

0

發佈的XML代碼...但在我看來,你沒有設置高度或寬度0dp(高度如果它是一個垂直佈局/寬度如果水平) ...另外,請確保所有textView都具有android:singleLine =「true」屬性