2016-04-06 37 views
0

對於我的生活,我無法弄清楚爲什麼我的文本會像這樣結束。我是java/android編程的新手,所以我很抱歉如果答案對我來說不明顯。我有一個tablelayout與一個靜態行,其餘動態編程英寸靜態行看起來不錯,但我的動態行有第1 textview擠壓,即使權重設置爲1兩個textviews。有人能告訴我我在做什麼/不做什麼?Textview和TableRow權重無法正常工作Android

XML:

<TableLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingBottom="16dp" 
     android:id="@+id/alchemist_favored_class"> 

     <TableRow> 

      <TextView 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Race" 
       android:gravity="left" 
       android:padding="2dp" /> 

      <TextView 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Bonus" 
       android:gravity="left" 
       android:padding="2dp" /> 

     </TableRow> 

    </TableLayout> 

的Java:

//Populate Favored Class Options Table 
    TableLayout tableFC = (TableLayout) findViewById(R.id.alchemist_favored_class); 
    String[] fcr = getResources().getStringArray(R.array.alchemist_favored_class_race); 
    String[] fcd = getResources().getStringArray(R.array.alchemist_favored_class_detail); 

    TableRow.LayoutParams lp1 = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT, 1f); 
    TableRow.LayoutParams lp2 = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT, 1f); 

    for (int i = 0; i < fcr.length; i++){ 

     TableRow tr = new TableRow(this); 
     TextView tvFCR = new TextView(this); 
     TextView tvFCD = new TextView(this); 

     tr.addView(tvFCR); 
     tvFCR.setText(fcr[i]); 
     tvFCR.setSingleLine(true); 
     tvFCR.setPadding(2,2,2,2); 
     tvFCR.setLayoutParams(lp1); 

     tr.addView(tvFCD); 
     tvFCD.setText(fcd[i]); 
     tvFCD.setPadding(2,2,2,2); 
     tvFCD.setLayoutParams(lp2); 

     //Add background color to every other row. 
     if ((i % 2) == 0) { 
      tr.setBackgroundColor(Color.parseColor("#EEEEEE")); 
     } 

     tableFC.addView(tr, new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.MATCH_PARENT)); 

    } 

結果:

Imgur

+0

爲什麼不在自定義行視圖中使用'ListView'?會比你在做什麼更容易... – margabro

+0

父母查看我們的滾動視圖。滾動視圖中的列表視圖不會在可滾動的情況下變得奇怪嗎? – Flakpanda

回答

0

把這樣的事情 -

tableFC.setStretchAllColumns(true); 

希望這有助於!

+0

沒有解決問題。還有和圖片中一樣的效果。 – Flakpanda

+0

是否可以通過XML創建單一的'TableLayout',然後通過XML /動態添加'TableRow',而不是兩個不同的'TableLayout'。 –

0

從行中第一個textview中刪除重量可以解決問題,現在可以根據需要顯示。

Image