【问题标题】:Set layout_width (height) to 0dp inside RelativeLayout在 RelativeLayout 中将 layout_width (height) 设置为 0dp
【发布时间】:2013-06-28 16:32:19
【问题描述】:

我知道在 LinearLayout 中将 layout_width(或高度)设置为 0dp 和 layout_weight 的效果,如以下问题所述:

Why is 0dp considered a performance enhancement?

但是,在此处的 Android 开发者指南中的示例代码中

http://developer.android.com/guide/topics/ui/layout/relative.html

为什么他们将 Spinner 的 layout_width 设置为 0dp ?那么这背后的原因或技巧究竟是什么?我对此的猜测是 Spinner 的水平位置已经可以由相关属性确定,因此出于与上述情况相同的原因,他们只是将其指定为 0dp。但是,我似乎找不到这方面的实际文档,所以还是有点混乱。

【问题讨论】:

    标签: android android-relativelayout


    【解决方案1】:

    当子视图被锚定在两侧时(在RelativeLayout 中),宽度被忽略。在这种情况下,Spinner 知道它的宽度是因为

    android:layout_alignParentLeft="true"
    android:layout_toLeftOf="@+id/times"
    

    【讨论】:

      【解决方案2】:

      我也在几个项目中看到过这个技巧,原因与他们在 LinearLayout 中使用“权重”的原因完全相同,但这里的关键属性是:android:layout_toLeftOf="@+id/times" 它与“ weight" 将用于线性布局,所以这是一种说法,从android:layout_alignParentLeft="true"android:layout_toLeftOf="@+id/times" 剩余的所有空间,无需硬编码任何特定宽度...

      问候!

      【讨论】:

        【解决方案3】:

        我们在与 layout_weight 一起使用时使用 0dp,因为它会忽略该属性,并且会按照 layout_weight..

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-09
          • 1970-01-01
          • 1970-01-01
          • 2013-05-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多