2012-04-09 36 views
0

我在使用TableLayout中的一些TextViews動態設置我的TableRow時遇到問題。我有兩張照片,一張是我目前的情況,另一張是我的樣機,預期的情況(我需要實現的目標)。我沒有任何XML佈局;所有這些都是以編程方式創建的,這也是我需要實現的。如何將我的TableLayout和TableRow動態修復到特定的位置?

顯示的快照適用於高分屏幕,我可以從中獲得高分玩家的列表,並將它們全部顯示在TableLayout中。我只是在行/列位置遇到問題。

nothing

這裏是我的代碼:

public void onResume() { 
    super.onResume(); 

    //============================================= 
    TextView number = new TextView(this); 
    number.setText("1"); 
    TextView place = new TextView(this); 
    place.setText("4th"); 
    TextView testScore = new TextView(this); 
    testScore.setText("113489"); 
    table = new TableLayout(this); 
    //rows = new Stack<TableRow>(); 
    TableRow row = new TableRow(this); 
    row.addView(number); 
    row.addView(place); 
    row.addView(testScore); 
    table.addView(row); 
    this.setContentView(table); 
} 

如果有誰知道我應該如何從目前的情況對樣機預計形勢的變化我的代碼,我很高興地欣賞它。如果我做錯了什麼,請發表評論。提前致謝。

回答

0

我剛剛發現了一個關於TableLayout和TableRow的良好鏈接,可以動態地創建特定的位置。 Link is here.當然,這裏的代碼只是它的準系統,用來簡化一個簡單的位置佈局。

這裏是我的代碼和結果的指定畫面:

public void onResume() { 
     super.onResume(); 



     //============================================= 

     dip = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float) 1, this.getResources().getDisplayMetrics()); 
     if (dip <= 0) 
      dip = 1; 


     TextView number = new TextView(this); 
     TextView place = new TextView(this); 
     TextView testScore = new TextView(this); 


     number.setText("1"); 
     place.setText("4th"); 
     testScore.setText("113489"); 

     number.setWidth(50 * dip); 
     place.setWidth(75 * dip); 
     testScore.setWidth(150 * dip); 

     number.setPadding(20*dip, 0, 0, 0); 

     table = new TableLayout(this); 
     TableRow row = new TableRow(this); 
     row.addView(number); 
     row.addView(place); 
     row.addView(testScore); 
     table.addView(row, new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT)); 
     this.setContentView(table); 
    } 

實際上,我驚訝,有一個爲獲得DIP單元的方法。應該首先尋找那個。 :P

nothing

0

將每個textview的佈局權重設置爲1,並將佈局寬度設置爲0dp。這將導致他們平均分配可用空間。您可以根據需要使用佈局左右重心,以進一步確保最大間距。

+0

TextView.setLayoutParams()使用ViewGroup.LayoutParams(),我不知道是什麼子類的參數,我應該用什麼。你知道嗎? – 2012-04-09 22:40:41

相關問題