2

我想在 TableLayout 中添加一个 ImageView。我做了所有的事情,但它没有显示任何东西。我该如何解决?

这是我的代码:

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.buddy_list);

   TableLayout buddy_list_layout = (TableLayout)findViewById(R.id.buddy_list_layout);

    TableRow tableRow = new TableRow(this);
    TableLayout.LayoutParams layoutParams1 = new TableLayout.LayoutParams(
    TableLayout.LayoutParams.FILL_PARENT,
        50);

    ImageView imageView = new ImageView(this);
    imageView.setImageResource(R.drawable.troll_logo);
    TableLayout.LayoutParams layoutParams2 = new TableLayout.LayoutParams(50, 50);
    tableRow.addView(imageView, layoutParams2);
    buddy_list_layout.addView(tableRow, layoutParams1);
} // end -> method -> onCreate
4

2 回答 2

1

您应该将 layoutParams2 从 a 切换TableLayout.LayoutParams()到 a TableRow.LayoutParams(),因为您正在使用它来添加 TableRow。类型需要与布局相匹配,否则将不起作用。

于 2012-07-03T16:41:44.390 回答
0

尝试对行使用预定义的 xml 布局,就像有人在这里建议的那样:https ://stackoverflow.com/a/8679835/375929 (您可能不希望它完全动态,您的行很可能相似,您只需要动态添加它们)它将节省您以LayoutParams编程方式进行的工作。

但是,是的,正如 matt5784 所说,您的问题可能是使用了错误的 LayoutParams 类。

于 2012-07-03T16:45:59.573 回答