【发布时间】:2015-06-14 16:40:30
【问题描述】:
所以要创建一个包含单个 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 包装器。
【问题讨论】:
-
“我总是在在线代码中看到 FrameLayout 包装器”——请随时链接到一些。或者,正如 Wikipedians 所说:请引用。请注意,
ListFragment不需要布局文件,如果您只是让它管理单个ListView。 -
来自“受人尊敬的”回购的一个简单示例:github.com/udacity/Sunshine-Version-2/blob/sunshine_master/app/…
-
该 XML 中的框架布局不起作用,除非它们以编程方式添加覆盖列表视图的其他视图(例如浮动操作按钮)
-
在那种特殊情况下,我不知道他们为什么要打扰
FrameLayout。我没有看到他们在ForecastFragment中使用它的地方,那里的布局被夸大了。没有浪费的容器是“最佳实践”,而FrameLayout似乎是一个浪费的容器。
标签: android android-layout listview