0diplayout_height或layouth_width有什么技巧?

发布于 2024-12-01 22:13:54 字数 400 浏览 1 评论 0 原文

我的意思是为什么有人希望他们的视图为 0dip 高度? 我已经见过很多次了,一定有什么窍门,但我不明白。

        <TextView android:gravity="top" android:textColor="#FFFF0000"
            android:textSize="20dip" android:text="TextView"
            android:layout_height="0dip" android:layout_width="fill_parent"
            android:id="@+id/contactName"></TextView>

为什么他们不使用例如wrap_content?他们想达到什么目的?

I mean why anybody want they view to be 0dip height ?
I have seen this many times, there must be some kind of trick, but I do not get it.

        <TextView android:gravity="top" android:textColor="#FFFF0000"
            android:textSize="20dip" android:text="TextView"
            android:layout_height="0dip" android:layout_width="fill_parent"
            android:id="@+id/contactName"></TextView>

Why they don't use for example wrap_content ? what do they want to achieve ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

囍笑 2024-12-08 22:13:54

这大量用于带有 LinearLayout 的视图。 LinearLayout 可以识别三个“布局”属性:

  1. android:layout_height
  2. android:layout_width
  3. android:layout_weight

您可以在 android:layout_weight 的示例rel="noreferrer">教程项目

因此,当在 View X 上使用 android:layout_weightLinearLayout 为水平方向时,则 X 的 android:layout_width 就是简单的被忽略。

类似地,当 View X 上使用 android:layout_weightLinearLayout 为垂直时,则 X 的 android:layout_height 为被忽略。

这实际上意味着,您可以在这些被忽略的字段中放置任何内容:0dpfill_parentwrap_content。没关系。但建议使用 0dp,这样 View 就不会对其高度或宽度进行额外的计算(然后会被忽略)。这个小技巧只是节省了 CPU 周期。

This is heavily used for views withing LinearLayout. There are three "layout" attributes that LinearLayout is aware of:

  1. android:layout_height
  2. android:layout_width
  3. android:layout_weight

You can find example with android:layout_weight in tutorial project.

So when android:layout_weight is used on View X and LinearLayout is horizontal, then X's android:layout_width is simply ignored.

Similar, when android:layout_weight is used on View X and LinearLayout is vertical, then X's android:layout_height is ignored.

This actually means, that you can put anything in those ignored fields: 0dp or fill_parent or wrap_content. It doesn't matter. But it's recommended to use 0dp so View's do not do extra calculation of their height or width (which is then ignored). This small trick simply saves CPU cycles.

紅太極 2024-12-08 22:13:54

当线性布局中有许多视图并设置 android:layout_weight="1" 以使两个视图占用相等的空间时,通常会使用此方法。例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="TextView" />

</LinearLayout>

在这种情况下,视图将占据与所有其他视图一样多的高度。

This is usually used when having many views inside a linearlayout and have set android:layout_weight="1" in order both views to take equal space. for example:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="TextView" />

</LinearLayout>

In that case, the view will take as much height as all other views.

浮华 2024-12-08 22:13:54

android:layout_height="0dp" 在各种代码中使用,因为:

  1. 这意味着视图的高度可以在以后由于其他布局约束而更改。
  2. 这是一种常见的做法,经常出现在相对布局和线性布局中。

例如:

android:layout_height = "0dp"
android:layout_weight = "1.0"

高度或宽度设置为“0dp”时,大多与“权重”结合使用。例如,您想要填充高度的所有可用空间,然后使用上面的代码,并且同样的宽度情况。

The android:layout_height="0dp" is used in various codes because:

  1. It means the height of the view can be changed later due to other layout constraints.
  2. It is a common practice and often seen in relative and linear layouts.

e.g:

android:layout_height = "0dp"
android:layout_weight = "1.0"

Height or width when set to "0dp", are mostly used in combination with "weight". e.g. you want to fill all the available space for height then use the above code and like wise the same case for width.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文