6

如何删除此警告?

使用 0dip 的 layout_height 而不是 wrap_content 以获得更好的性能

4

4 回答 4

24

好的,让我通过一个例子来解释,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Hello World!!" />

</LinearLayout>

在上面的示例中,我使用android:layout_weight="1"的是 TextView,通过它我告诉布局我的 TextView 将采用父布局(LinearLayout)的全高。因此,在这种情况下android:layout_height="wrap_content"是没有用的,因为TextView将具有作为 parent 的完整大小LinearLayout。因此,在这种情况下,最好添加android:layout_height="0dp"以使 TextView 将自身包装到父 Layout 的高度。

于 2012-07-03T05:06:25.030 回答
0

您必须layout_weight在垂直父布局中存在的子元素中具有 use 属性。因此,在这种情况下,您已经告诉父级要对子级应用多少高度。

所以在子元素替换

android:layout_height="wrap_content"

android:layout_height="0dp"

但是,这只是一个猜测,您应该发布整个布局 XML

于 2012-07-03T05:00:47.187 回答
0

我刚遇到这个问题,所以...

确保父布局的方向设置为与您希望 weightSum 对应的方向相匹配。

换句话说,如果要使用 weightSum 的子视图的 layout_width,请确保父 Layout 的方向设置为“水平”。

或者:

如果它是您想要使用 weightSum 的孩子的 layout_height 属性,请将父级的布局方向设置为垂直。

于 2014-03-08T20:30:35.777 回答
0

如果您为 指定了任何值layout_weight即使将其设置为 0,它也会抛出此警告。

问题是,将高度/宽度设置为 0dp,在这种情况下会导致元素根本不显示。只需删除layout_weight参数,一切都很好。

当然,正如许多其他人所说,如果您layout_weight指定了大于零的值,这不是问题。只需将layout_heightlayout_width(取决于布局)设置为 0dp。

于 2014-02-06T08:20:55.333 回答