1

编辑:通过埃米尔的评论找到答案。代码最终是这样的:

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
               FrameLayout.LayoutParams.WRAP_CONTENT, 
               FrameLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(left, top, right, bottom);
view.setLayoutParams(params);

谢谢大家 :D

我目前正在编写一个 Android 应用程序,并且我有一个动态创建的树,其中显示 ImageView 元素。然而,为了排列这些图像,我使用了向左填充来正确排列它们,动态地改变填充的计算方式,以便一切都变得均匀。但是,当我这样做时,填充会覆盖左侧的一些图像,即使您可以看到此填充后面的图像,当您单击该图像时,它也会评估正在使用填充的图像(最远左元素)。我基本上想知道是否有一种方法可以以编程方式设置对图像执行填充但不可点击的操作?边距是有意义的,但你不能在 ImageViews 上设置边距。

设置的树是这样的:

-----A-----
--B--C--D--
-E-F----G--

想象每个字母都是一个 ImageView,动态放置并带有填充。但是,如果我单击 B 或 C,将评估 D 的代码,因为它的左侧填充覆盖了 B 和 C。对于 E 或 F,同样如此,单击它们,将评估 G。我想不出另一种方式来放置这些 ImageView。任何帮助是极大的赞赏。

4

1 回答 1

5

考虑用 layout_margin 属性替换您的填充。这样,分隔填充视图的区域不被视为视图的一部分,而是作为其所在布局的一部分。

所以使用

android:layout_margin="10dp"

或者:

android:layout_marginLeft="10dp"

满足您的需求。

于 2013-02-28T23:49:45.057 回答