【问题标题】:How does this code affect the RelativeLayout?这段代码如何影响RelativeLayout?
【发布时间】:2015-09-18 22:30:51
【问题描述】:

当我们将布局规则设置为 -1 是什么意思?
我见过这样的代码:

layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, -1);  

这会删除规则吗?

【问题讨论】:

标签: android android-layout android-relativelayout


【解决方案1】:

[来自文档...](https://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#addRule(int, int))

用作锚点的另一个视图的 id,或布尔值(表示为 TRUE 表示真或 0 表示假)。对于不引用另一个兄弟的动词(例如,ALIGN_WITH_PARENT_BOTTOM),只需使用 -1。

因此,如果规则不适用于同级(视图父级的直接子级),则使用 -1。

如果你想使用RelativeLayout.ALIGN_TO_RIGHT_OF 之类的东西,那么你应该使用应该在它左边的Views id 而不是-1

【讨论】:

  • 这个我不太明白so if the rule doesn't apply to a sibling (direct child of the View's parent) then you use -1.
  • 在文档中的示例中,没有孩子可以将其与第二个参数相关联,因为它是相对于父级的……而不是该父级的另一个子级。如果您需要,我可以尝试解释更多,但您需要更清楚究竟是哪一部分您不了解
  • 我不明白-1 是什么意思。和父母对齐是一样的吗?
  • 是的,你可以这样看。它与父级而不是兄弟级对齐。不过,它必须是可以与父母对齐的参数。例如,您无法将孩子与父母的左右对齐。但你可以将它与父母的顶部或底部对齐
  • 你了解这种情况下的父母、孩子、兄弟姐妹吗?因为这很重要
【解决方案2】:

要移除规则,需要将anchor设置为0:

layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);

-1 用于在使用规则的动词时没有可引用的兄弟姐妹。

例子:

  • ALIGN_WITH_PARENT_BOTTOM :不需要兄弟视图。

  • ALIGN_RIGHT :需要兄弟姐妹;即该视图需要与其右对齐的目标。

【讨论】:

    猜你喜欢
    • 2020-12-09
    • 2013-12-05
    • 2020-11-29
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多