我在Java代码中定义了一个TableLayout。对于每一行,我显示三个ImageButtons。按下其中一个按钮时,背景颜色会发生变化。为了很好地显示它,我设置了10px的填充。
我现在遇到的问题是,如果你按下彼此相邻的两个按钮,你就不会看到按钮之间的中断。所以我想知道,有可能在ImageButtons或其他解决方案上设置一个保证金吗?
答案 0 :(得分:11)
尝试
int leftMargin = 10;
((MarginLayoutParams) imageButton.getLayoutParams()).leftMargin = leftMargin;
修改强>
如果您不使用xml中定义的ImageButton
,则必须设置LayoutParams
,如下所示:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
params.leftMargin = 10;
b.setLayoutParams(params);
我假设您在列表项中使用LinearLayout
。
答案 1 :(得分:2)
确保使用LayoutParams
作为控件所在的容器。在您的情况下,按钮位于TableRow
中,因此如果您使用任何其他类型的按钮,请使用TableRow.LayoutParams
params,控件根本不显示。