我有一个TableRow,我在其中添加了一些要显示的项目,一切顺利。然而,当我想添加一个布局修改按钮时,它似乎没有被绘制。这是代码:
ImageButton botonBorrar = new ImageButton(this);
botonBorrar.setImageResource(R.drawable.discard_light);
LinearLayout.LayoutParams buttonParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.MATCH_PARENT);
buttonParams.setMargins(15, 10, 10, 10);
botonBorrar.setLayoutParams(buttonParams);
myRow.addView(botonBorrar);
这里可能有什么问题?我已经关注了很多这方面的帖子,但似乎没有什么能解决我的问题。
提前致谢。
答案 0 :(得分:1)
我想您应该使用TableRow.LayoutParams而不是LinearLayout.LayoutParams。
TableRow的子节点不需要在XML文件中指定layout_width和layout_height属性。 (http://developer.android.com/reference/android/widget/TableRow.html)
因此,您可以先向视图添加按钮,然后获取已生成的layoutparams并进行修改:
myRow.addView(botonBorrar);
TableRow.LayoutParams buttonParams = (TableRow.LayoutParams)bottonBorrar.getLayoutParams();
buttonParams.setMargins(15, 10, 10, 10);
//botonBorrar.setLayoutParams(buttonParams); - if you add button to the view, you do not have to set modified layout params explicitly.