2012-10-30 77 views
1

我準備佈局以顯示類別中顯示的國家/地區列表。我有問題格式化我的佈局。我想類別冠軍(大的)是「100%的寬度」,到目前爲止,他們都WRAP_CONTENT格式化(藍色是用於測試目的):佈局 - MATCH_PARENT隱藏元素

Debug view

我用下面的代碼:

TableLayout table = new TableLayout(this); 
table.setPadding(24, 14, 24, 24); 
table.setStretchAllColumns(true); 
table.setShrinkAllColumns(true); 

// ... 

TableRow titleRow = new TableRow(this); 
titleRow.setGravity(Gravity.CENTER_HORIZONTAL); 
titleRow.setPadding(0, 18, 0, 8); 
titleRow.setBackgroundColor(Color.BLUE); 

TextView title = new TextView(this); 
title.setText("TEST TITLE"); //title.setText(currentContinent); 
title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); 
title.setGravity(Gravity.CENTER); 
title.setBackgroundColor(Color.DKGRAY); 
title.setPadding(0, 6, 0, 8); 

titleRow.addView(title); 
table.addView(titleRow, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 

我改變的代碼,使填充TextView的父母最後一部分(的TableRow):

titleRow.addView(title, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 
table.addView(titleRow, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 

但後來我的TextView自敗!

Debug view http://www.wysyper.pl/u/4417tahfcvnb.jpeg

什麼會導致什麼問題?

回答

0

我相信你有一個很好的理由不要爲此使用XML佈局,這會讓你的生活更少地被代碼填充並消除一些潛在的錯誤。

您是否使用適合您父視圖的LayoutParams子類的實例嘗試了它?添加到TableLayout的每個視圖應使用TableLayout.LayoutParams的實例。同樣,TableRow需要TableRow.LayoutParams的實例。

如果這樣不能解決問題,我建議用XML代替代碼構建佈局。