0

我在我的 MainActivity 中放置了两个 ListFragment。

这是 ListFragment xml 文件:fragment1.xml

<?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" >

    <ListView
        android:id="@id/android:list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:drawSelectorOnTop="false" />

</LinearLayout>

我的问题是,为什么我必须在这里使用 android:id="@id/android:list" ?例如,当我使用@+id/frag_list 时,程序会因错误“inflating class fragment”而崩溃。

4

1 回答 1

2

ListActivity 有一个默认布局,它由屏幕中央的单个全屏列表组成。setContentView()但是,如果您愿意,您可以通过使用in设置您自己的视图布局来自定义屏幕布局onCreate()。为此,您自己的视图必须包含一个带有 id 的 ListView 对象"@android:id/list"(或列表,如果它在代码中)。当你的类扩展时它也是一样的ListFragment

有关更多信息,请查看文档

http://developer.android.com/reference/android/app/ListActivity.html

您可以扩展 Fragment 而不是 ListFragment。使用 ListView 进行自定义布局。然后您可以为您的列表视图提供任何 ID。

于 2013-09-17T02:53:46.283 回答