如何动态地将片段添加到现有片段?
How to add fragment to existing fragment dynamically?
我想在按下按钮时向现有片段添加片段(按钮位于父片段上),但出现错误:java.lang.ClassCastException:必须实现 OnFragmentInteractionListener。
这是什么意思,为什么没有任何示例包含它?
父片段按钮按下代码:
Button interestedButton = (Button) myFragmentView.findViewById(R.id.interestedButton);
interestedButton.setOnClickListener(new View.OnClickListener() {
InterestedFormFragment interestedFormFragment = new InterestedFormFragment();
@Override
public void onClick(View v) {
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction().add(R.id.interestedFrag_container, interestedFormFragment, "INTERESTED_FORM");
fragmentTransaction.commit();
}
});
父片段XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#FFFFFF"
android:layout_gravity="bottom"
android:id="@+id/buildingPageId">
<LinearLayout
android:orientation="vertical"
android:id="@+id/interestedFrag_container"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
...
"interestedFrag_container" 应该包含新添加的子片段。
我的父片段已膨胀并按住应添加子片段的按钮。
我在这里错过了什么?
谢谢!
自 API 17.
以来才添加嵌套片段
您可以使用 getChildFragmentManager() 来管理您的嵌套片段。
我想在按下按钮时向现有片段添加片段(按钮位于父片段上),但出现错误:java.lang.ClassCastException:必须实现 OnFragmentInteractionListener。
这是什么意思,为什么没有任何示例包含它?
父片段按钮按下代码:
Button interestedButton = (Button) myFragmentView.findViewById(R.id.interestedButton);
interestedButton.setOnClickListener(new View.OnClickListener() {
InterestedFormFragment interestedFormFragment = new InterestedFormFragment();
@Override
public void onClick(View v) {
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction().add(R.id.interestedFrag_container, interestedFormFragment, "INTERESTED_FORM");
fragmentTransaction.commit();
}
});
父片段XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#FFFFFF"
android:layout_gravity="bottom"
android:id="@+id/buildingPageId">
<LinearLayout
android:orientation="vertical"
android:id="@+id/interestedFrag_container"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
...
"interestedFrag_container" 应该包含新添加的子片段。
我的父片段已膨胀并按住应添加子片段的按钮。 我在这里错过了什么? 谢谢!
自 API 17.
以来才添加嵌套片段您可以使用 getChildFragmentManager() 来管理您的嵌套片段。