0

我有一个表格行,它是屏幕的全宽,它包含 2 个文本视图和一个按钮。理想情况下,我希望显示为:

[文本视图1][文本视图2][按钮]

Textview1 贴在左侧,Button 贴在右侧,Textview2 填充剩余的可用空间。我一直在环顾四周,但找不到任何可以自动拉伸以适应剩余部分的选项。

由于应用程序的性质,我必须自动添加这些表格行及其内容,所以这就是我目前所拥有的。

for( Program element :  sampleList)
{           
LayoutParams trLP = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
LayoutParams timeLP = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
LayoutParams titleLP = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
LayoutParams moreInfoLP = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);

//Table row to hold details
TableRow tr = new TableRow(this);
tr.setLayoutParams(trLP);

//Time
TextView time = new TextView(this);
time.setText(element.getTime());
timeLP.width=50;
timeLP.gravity=1;
time.setLayoutParams(timeLP);

//Title
TextView title = new TextView(this);
title.setText(element.getTitle());
title.setLayoutParams(titleLP);

//Button
moreInfo = new Button(this);
moreInfo.setText("More Info");

//Add to text views to table row
tr.addView(time);
tr.addView(title);
tr.addView(moreInfo);

holder.addView(tr, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));              
}

上面的工作但显然没有像我想要的那样显示,因为中间文本视图上的 wrap_content,我知道我可以硬编码一个宽度,但非常希望远离这种情况。我正在尝试用我拥有的当前代码实现什么?

4

2 回答 2

3

您可能想尝试weightLayoutParameters 的属性。在您的情况下,将外部元素的权重设置为 0,将中心元素的权重设置为 1。这应该使中心元素占据尽可能多的空间。然而,权重属性有时会有点奇怪。

也看看这个 Q/A

于 2013-03-10T19:44:17.000 回答
0

我会为此使用 Mig Layout(http://www.miglayout.com/https://github.com/saynomoo/mig4android),因为它确实使这种事情变得更容易。我没想到,但填充和增长限制看起来应该可以完成您需要的工作。

于 2013-03-10T19:08:36.433 回答