我在Java代码中定义了一个TableLayout。每一行都显示三个ImageButtons。当其中一个按钮被按下时,背景颜色会改变。为了美观,我设置了10px的填充。现在遇到的问题是,如果你按下相邻的两个按钮,你看不到按钮之间的间隔。所以我想知道,是否有可能在ImageButtons上设置边距或其他解决方案?
尝试一下
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
。
请务必使用容器所在的LayoutParams
。在您的情况下,按钮位于TableRow
中,因此如果使用任何其他类型的params,则控件将根本不显示,请使用TableRow.LayoutParams
。
ListView
,但请尝试将LinearLayout.LayoutParams
替换为TableLayout.LayoutParams
。 - ernazmTableRow.LayoutParams
。 - ernazm