这里的问题是我调用了 Fragment.onCreateView 并传入了包含视图的 id。这个包含视图是视图本身,因此代码自然会尝试将我的代码附加到它认为是包含视图的内容上,即它本身。因此无限递归。另一个问题是,膨胀代码在看到 activity_shop2_drop.xml 中的“fragment”标签时会返回 ClassNotFoundException,因此永远不会在片段上调用“onCreateView”。我还没有解决这个问题。这是 activity_shop2_drop.xml 代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/whole_app_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<fragment
class="com.victorpreston.shop2drop.S2DButtonFragment"
android:id="@+id/buttonFragmetLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<fragment
class="com.victorpreston.shop2drop.S2DListFragment"
android:id="@+id/listFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
这是button_fragment_layout.xml 代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/buttonFragmentLayout"
android:layout_width="match_parent"
android:layout_height="40dip"
android:orientation="horizontal">
<Button
android:id="@+id/newItemButton"
android:layout_width="0dip"
android:layout_height="40dip"
android:layout_weight="1"
android:text="@string/newColumnButton" />
<Button
android:id="@+id/newColumnButton"
android:layout_width="0dip"
android:layout_height="40dip"
android:layout_weight="1"
android:text="@string/newItemButton" />
<Button
android:id="@+id/exitButton"
android:layout_width="0dip"
android:layout_height="40dip"
android:layout_weight="1"
android:text="@string/exitButton" />
</LinearLayout>
请注意,它们都创建和使用相同的 id。我尝试改变它,它没有任何区别,所以我认为这不是问题。