这个LinearLayout应该使用android:layout_height =“wrap_content”?

时间:2012-09-14 12:14:03

标签: android

我有以下xml布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true" >

  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" // ==> here I get the error.
    android:orientation="vertical" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Test"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="5dp"  />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="2dip"
        android:background="#298EB5"
        android:orientation="horizontal" />


  </LinearLayout>
</ScrollView>

但是我收到了lint消息:

  

这个LinearLayout应该使用android:layout_height =“wrap_content”

为什么我会收到此消息?

3 个答案:

答案 0 :(得分:10)

LinearLayout用于堆叠元素,可以并排放置,也可以叠放在一起。我的猜测是,由于ScrollView

,此棉绒警告建议进行有效堆叠

Documentation

“LinearLayout的所有子项一个接一个地堆叠,所以垂直列表每行只有一个子,无论它们有多宽,水平列表只有一个行高(最高的孩子的高度,加上填充).LineLayout尊重孩子之间的边距和每个孩子的重力(右,中或左对齐)。“

答案 1 :(得分:4)

它的Lint警告你应该使用

android:layout_height="wrap_content"

wrap_content根据添加要求内容占据高度。 这里布局的高度根据要求

包裹

答案 2 :(得分:4)

这不是错误,但没有建议,因为在某些情况下它会产生不需要的结果。我在使用scrollview时遵循Romain的这个article。我希望这能解释这条消息的原因。