为什么ListView不能成为顶级视图?

时间:2015-06-14 16:40:30

标签: android android-layout listview

所以要创建一个包含单个ListView的Fragment,我必须这样做

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                tools:context=".MainActivityFragment">

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</FrameLayout>

为什么我必须将ListView放在FrameLayout中?为什么ListView不能成为顶级视图?

更新

我有点问错了:我的意思是:为什么将ListView本身作为顶级视图不是最佳做法?我总是在在线代码中看到FrameLayout包装器。

1 个答案:

答案 0 :(得分:3)

只要您不希望在布局中放置任何其他内容,它就可以。

FrameLayout,与Linear和Relative相同,是多个视图的容器,但如果你只有一个,你不需要它们。

在线看到的大多数布局文件都假设您可能希望通过添加空状态或工厂等必需品来扩展您的UI。您的空状态也需要在相同的布局上。