1

我正在为类别中显示的国家列表准备布局。我在格式化布局时遇到问题。我希望类别标题(较大的)为“100% 宽度”,到目前为止它们是 WRAP_CONTENT 格式的(蓝色用于测试目的):

调试视图

我使用了以下代码:

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 消失了!

调试视图 http://www.wysyper.pl/u/4417tahfcvnb.jpeg

什么会导致问题?

4

1 回答 1

0

我相信您有充分的理由不为此使用 XML 布局,这应该会让您的生活少很多代码填充并消除一些潜在的错误。

您是否尝试过LayoutParams为父视图使用正确子类的实例?添加到 a 的每个视图都TableLayout应该使用TableLayout.LayoutParams. 同样TableRow期望TableRow.LayoutParams.

如果这不能解决问题,我建议使用 XML 而不是代码来构建布局。

于 2012-10-30T19:43:27.790 回答