2014-02-13 9 views
0

좋아, 그 해결책을 찾았지만 찾지 못했습니다. 질문은 간단합니다. 안드로이드에 TableLayout가 있습니다. 나는 그 안에 몇 개의 행을 추가하고 있습니다. 마지막 행에서 버튼을 추가하고 있습니다. 자, 문제는 버튼의 크기가 일정하지 않다는 것입니다. 내 말은 칼럼을 채우는 것입니다. 위의 데이터가 열의 너비가 더 길면 버튼의 너비가 그에 따라 증가합니다. 나는 LayoutParams, setHeight, setWidth 기능도 시도했지만 그게 도움이되지 못했습니다 ..동적으로 TableLayout의 버튼 크기 조정 (안드로이드)

누군가 나를 도와 주시면 감사하겠습니다.

TableLayout table=new TableLayout(this); 
TableRow tableRow=new TableRow(this); 
Button button=new Button(this); 
TableRow.LayoutParams trParams = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT); 
Button.setLayoutParams(trParams); 
tableRow.AddView(button); 
table.addView(tableRow); 
+0

당신의 XML 파일을 공유하십시오 .... – Namy

+0

저는 프로그램 적으로 이것을 동적으로하고 있습니다. – user3265560

+0

user3265560 좋습니다. 좋아 .. – Namy

답변

0

단추가 아닌 단추에서 setLayoutParams를 호출했습니다. 이름은 대/소문자를 구분합니다. Button이 클래스이고 button이 개체입니다. 시도 :

TableLayout table=new TableLayout(this); 
TableRow tableRow=new TableRow(this); 
Button button=new Button(this); 
TableRow.LayoutParams trParams = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT); 
tableRow.AddView(button, trParams); 
table.addView(tableRow); 

그러나이 방법으로는 주요 문제가 해결되지 않습니다. Reference 문서에 따르면 TableRow의 모든 자식은 해당 너비에 맞게 MATCH_PARENT로 지정됩니다.

다른 레이아웃 내에서 버튼을 중첩 할 수 있습니다. 예를 들어, 버튼을 수평 인 LinearLayout 안에 넣은 다음 LinearLayout을 TableRow에 넣으십시오.

+0

나는 그것을 시도했다. didnt는 일한다. 초를 기다리십시오 – user3265560

+0

TableLayout 테이블 = 새 TableLayout (this); TableRow tableRow = 새 TableRow (this); 단추 단추 = 새 단추 (this); TableRow.LayoutParams trParams = new TableRow.LayoutParams (TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT); Button.setLayoutParams (trParams); tableRow.AddView (button); table.addView (tableRow); – user3265560