3

我在我的 Java 代码中定义了一个 TableLayout。对于每一行,我显示三个 ImageButton。当按下其中一个按钮时,背景颜色会发生变化。为了很好地显示它,我设置了 10px 的填充。

我现在遇到的问题是,如果您按下两个相邻的按钮,您不会完全看到按钮之间的中断。所以我想知道,是否有可能在 ImageButtons 或其他解决方案上设置边距?

4

2 回答 2

11

尝试

int leftMargin = 10;
((MarginLayoutParams) imageButton.getLayoutParams()).leftMargin = leftMargin;

编辑: 如果你不使用ImageButton在 xml 中定义,你必须这样设置LayoutParams

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                        LayoutParams.WRAP_CONTENT);
params.leftMargin = 10;
b.setLayoutParams(params);

在这里,我假设您LinearLayout在列表项中使用。

于 2011-03-31T08:37:14.053 回答
2

确保使用LayoutParams控件所在的容器。在您的情况下,如果您使用任何其他类型的参数,则按钮处于TableRow如此使用状态TableRow.LayoutParams,控件根本不会显示。

于 2011-06-17T22:48:34.363 回答