0

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

为什么 0dp 被认为是性能增强?

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

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

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

4

3 回答 3

3

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

android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/times"
于 2013-06-28T16:48:55.283 回答
1

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

问候!

于 2013-06-28T16:42:49.340 回答
-1

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

于 2013-06-28T16:42:23.037 回答