如何删除此警告?
使用 0dip 的 layout_height 而不是 wrap_content 以获得更好的性能
好的,让我通过一个例子来解释,
<?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 的高度。
您必须layout_weight
在垂直父布局中存在的子元素中具有 use 属性。因此,在这种情况下,您已经告诉父级要对子级应用多少高度。
所以在子元素替换
android:layout_height="wrap_content"
和
android:layout_height="0dp"
但是,这只是一个猜测,您应该发布整个布局 XML
我刚遇到这个问题,所以...
确保父布局的方向设置为与您希望 weightSum 对应的方向相匹配。
换句话说,如果要使用 weightSum 的子视图的 layout_width,请确保父 Layout 的方向设置为“水平”。
或者:
如果它是您想要使用 weightSum 的孩子的 layout_height 属性,请将父级的布局方向设置为垂直。
如果您为 指定了任何值layout_weight
,即使将其设置为 0,它也会抛出此警告。
问题是,将高度/宽度设置为 0dp,在这种情况下会导致元素根本不显示。只需删除layout_weight
参数,一切都很好。
当然,正如许多其他人所说,如果您layout_weight
指定了大于零的值,这不是问题。只需将layout_height
或layout_width
(取决于布局)设置为 0dp。