2013-07-26 3 views
1

아래와 같이 I 테이블 뷰 내부 버튼을 생성하는 응용 프로그램을 가지고 안드로이드 - tablerow 내부 프로그래밍 설정 버튼 폭

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

      } 
} 

프로그래밍 match_parent에 버튼 wrap_content 너비 및 높이를 설정하는 방법이 ?

프로그래밍 방식으로 행의 단추를 배치하는 방법이 있습니까?

감사합니다.

답변

2

이 시도 :

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

에 한번 사용 무게 단추. 테이블 행 weightsum = 10을 제공하십시오. 당신의 요구에 따라 버튼으로 나눕니다. btn1.weight = 3; btn2.weight = 5; btn3.weight = 2; 이것은 HTML에서 %를 사용하는 것과 같습니다. weightsum = 10으로 설정하면 부모보기의 100 %를 사용함을 의미합니다. 버튼에 weight = 3을 사용하면 총 행 크기의 3/10을 사용하게됩니다. 너비를 지정하기 때문에 너비를 지정하는 모든보기에 너비 = 0을 설정해야합니다. 무게

은 다음과 같이 사용합니다

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

을 3 층은 무게입니다. 그러나 tableyow에서 처음으로 setweight 합계는 10입니다.

희망 하시겠습니까?

+0

감사합니다. 그러나 버튼 내용이 너무 길어서 세 번째 줄이 거의 보이지 않는 것 같았습니다. 테이블 행에 버튼을 고르게 분배하는 방법에 대한 아이디어가 있습니까? – Razgriz

+0

가중치 사용 시도 – Nicholas

+0

수정 된 코드 참조. –

관련 문제