2012-04-09 15 views
0

TableLayout内にいくつかのTextViewを動的に設定して、TableRowを設定する際に問題があります。私は2枚の写真を持っています.1枚は私の現在の状況、もう1枚は私のモックアップ、予想される状況(私が達成しなければならない目標)です。 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.もちろん、ここのコードは単純な位置レイアウトをデモンストレーションするために使用される単なるベアボーンです。私はDIP単位を取得するための方法があることを実際に驚いてる

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); 
    } 

は、ここに私のコードと結果の与えられた絵です。最初にそれを探していたはずです。 :P

nothing

0

各テキストビューのレイアウトの重みを1に、レイアウトの幅を0dpに設定します。それによって、利用可能なスペースを均等に分割することになります。最大の分離をさらに確実にするために、レイアウト重力を左、中央、および右に適切に使用できます。

+0

TextView.setLayoutParams()私は何サブクラスのパラメータは、私が使うべきかわからないViewGroup.LayoutParamsを()、使用しています。あなたは知っていますか? –

関連する問題