【问题标题】:Can android padding be made to be not clickable?可以使android填充不可点击吗?
【发布时间】:2013-03-01 08:18:43
【问题描述】:

编辑:通过 Emil 的 cmets 找到答案。代码最终是这样的:

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。非常感谢任何帮助。

【问题讨论】:

    标签: android dynamic padding


    【解决方案1】:

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

    所以用

    android:layout_margin="10dp"
    

    或:

    android:layout_marginLeft="10dp"
    

    满足您的需求。

    【讨论】:

    • 我希望我能做到这一点...... ImageViews 都是以编程方式创建的,然后添加到框架视图中。但是因为它根本没有在 XML 中声明,所以我不能以这种方式设置边距......
    • 您可以前往:stackoverflow.com/questions/4472429/… 了解如何以编程方式实现相同的结果。
    • 谢谢你,Emil,这对我很有帮助,最终它对我有用:)
    猜你喜欢
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 2012-10-15
    相关资源
    最近更新 更多