1

以下に示すように、テーブル ビュー内にボタンを生成するアプリケーションがあります。

TableLayout table = (TableLayout) findViewById( R.id.tableLayout1 );

    for(int i = 0 ; i < Gatorade.getVariant().length ; i++){
           int buttonsInRow = 0;
           int numRows = table.getChildCount();

           TableRow row = null;

           if( numRows > 0 ){
                row = (TableRow) table.getChildAt( numRows - 1 );
                buttonsInRow = row.getChildCount();         
           }

           if( numRows == 0 || buttonsInRow == 3 ){
                row = new TableRow( this );
                table.addView( row );
                buttonsInRow = 0;
           }
           if( buttonsInRow < 3 ){
                Button b = new Button( this );
                b.setText(Gatorade.getVariant()[i]);
                //b.setWidth(pixels)
                //b.setWidth()

                row.addView( b, 100, 50 );

           }
}

プログラムでボタンの幅wrap_contentと高さをに設定する方法はありますmatch_parentか?

これが不可能な場合、プログラムでボタンを行に均等に配置する方法はありますか?

ありがとう。

4

1 に答える 1

2

これを試して:

LayoutParams lp = new TableRow.LayoutParams(android.widget.TableRow.LayoutParams.WRAP_CONTENT,android.widget.TableRow.LayoutParams.MATCH_PARENT);
btn.setLayoutParams(lp);

Weight in ボタンを使ってみてください。テーブル行の weightsum=10 を指定します。必要に応じてボタンに分割します。btn1.weight=3; のように。btn2.weight=5;btn3.weight=2; これは、HTML で % を使用するようなものです。weightsum = 10 を設定すると、親ビューの 100% を使用することを意味します。ボタンに weight=3 を使用すると、合計行サイズの 3/10 が使用されます。幅のためだけなので、重みを割り当てるすべてのビューで width =0 を設定する必要があります。

重量の場合、次のように使用します。

LayoutParams lp = new TableRow.LayoutParams(0,android.widget.TableRow.LayoutParams.MATCH_PARENT,3f);

ここで、3f は重量です。ただし、最初に tablerow で重みの合計を 10 に設定します。

それが役に立てば幸い!!!

于 2013-07-26T04:57:05.387 に答える