布局 - MATCH_PARENT隐藏元素

时间:2012-10-30 18:52:23

标签: android layout textview

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

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

可能导致问题的原因是什么?

1 个答案:

答案 0 :(得分:0)

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

您是否使用适当的LayoutParams子类的实例为您的父视图尝试过?添加到TableLayout的每个视图都应使用TableLayout.LayoutParams的实例。同样,TableRow需要TableRow.LayoutParams

的实例

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