mar*_*ark 25 android tablelayout
我正在尝试以编程方式创建TableLayout.它不会起作用.然而,xml文件中的相同布局有效.这就是我所拥有的:
public class MyTable extends TableLayout
{
public MyTable(Context context) {
super(context);
setLayoutParams(new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
TableRow row = new TableRow(context);
row.setLayoutParams(new TableRow.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
Button b = new Button(getContext());
b.setText("hello");
b.setLayoutParams(new LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
row.addView(b);
addView(row)
}
}
...
// In main activity:
MyTable table = new MyTable(this);
mainLayout.addView(table);
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我没有崩溃,但没有出现.如果我摆脱TableRow实例,至少该按钮确实显示为TableLayout的直接子项.我究竟做错了什么?
Gri*_* A. 34
只是为了让答案更清楚:
TableLayout.LayoutParams tableParams = new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT);
TableRow.LayoutParams rowParams = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
TableLayout tableLayout = new TableLayout(context);
tableLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));// assuming the parent view is a LinearLayout
TableRow tableRow = new TableRow(context);
tableRow.setLayoutParams(tableParams);// TableLayout is the parent view
TextView textView = new TextView(context);
textView.setLayoutParams(rowParams);// TableRow is the parent view
tableRow.addView(textView);
Run Code Online (Sandbox Code Playgroud)
说明
调用时setLayoutParams,应该传递LayoutParams父视图
事实证明我需要为布局参数指定TableRowLayout,TableLayout等,否则表格就不会显示!
| 归档时间: |
|
| 查看次数: |
52948 次 |
| 最近记录: |