9

我有以下 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"

为什么我会收到此消息?

4

3 回答 3

10

LinearLayout's 设计用于将元素并排或堆叠在一起。我的猜测是,这个 lint 警告建议使用虚拟堆叠,因为ScrollView

文档

“LinearLayout 的所有子元素一个接一个地堆叠,因此垂直列表每行只有一个子元素,无论它们有多宽,而水平列表将只有一行高(最高子元素的高度,加上填充)。LinearLayout 尊重子级之间的边距和每个子级的重力(右对齐、居中对齐或左对齐)。

于 2012-09-14T12:24:17.723 回答
4

您应该使用它的 Lint 警告

android:layout_height="wrap_content"

wrap_content根据添加需要的内容占据高度。这里的Layout wrap的高度根据需要

于 2012-09-14T12:21:30.670 回答
4

这不是错误,但不建议这样做,因为在某些情况下会产生不需要的结果。我在使用滚动视图时遵循 Romain 的这篇文章。我希望这将解释该消息的原因。

于 2012-09-14T17:25:54.503 回答