我在使桌子看起来像我打算的样子时遇到了一些麻烦。这是几个问题,但由于它们都参考了下面的图片和我提供的详细信息,我认为它们都应该放在一个帖子中。
这是我到目前为止所取得的成就:
标题行包含一个 Button 类型的元素。
TableRow.LayoutParams params = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT);
Button bt = new Button(getContext());
bt.setText("Column1");
mHeader.addView(bt, params);
mHeader.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
addView(mHeader);
表格的其余部分是这样填充的:
(Messagerow 扩展了 TableRow 并有一个 TextView 成员)
for(int i = 0; i < 100; i++) {
MessageRow mr = new MessageRow(getContext());
// stuff to set the TexView text and color
mr.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
this.addView(mr);
}
1.如何使标题行高度更像行?
2.如何让按钮占据行的全宽?
如果表格是空的,没有文本行只是标题,那么按钮匹配行宽。一旦我添加一行文本,列宽就会被调整,但按钮宽度不会。
3. 如何让行填满屏幕宽度?(MATCH_PARENT 不这样做)
4. 如何在表格行之间画一条细线?
我试图覆盖 MessageRow 上的 onDraw() 函数,但它从未被调用,甚至一次也没有。
不要误会我的意思。我不是要求你为我做我的工作。这些是我试图自己解决的问题,并在谷歌上搜索并阅读了类似的帖子,但没有找到答案。
注意:我发现 Android 的 Javascript 中的 UI 设计缺乏对所有这些小细节的清晰控制和清晰的文档。
编辑
这是我创建表的方式:
TableLayout mTable = new TableLayout(this);
HorizontalScrollView hview = (HorizontalScrollView) findViewById(R.id.hscroll);
populate(mTable);
mTable.setLayoutParams(new TableLayout.LayoutParams( TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));
mTable.setBackgroundColor(Color.WHITE);
hview.addView(mTable);