2015/03/19
DialogFragment の中に Fragment を表示する方法
しかし、XML を使った静的な Fragment は入れ子構造に出来ないようです。
では、どうしたら良いのかというと、動的に Fragment を追加してやれば良いです。
以下のように、
onViewCreated() で Fragment を追加します。この時、getChildFragmentManager() を使用していることに注意です。TestDialog.java
public class TestDialog extends DialogFragment {
public TestDialog() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.dialog_test, container, false);
return v;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Fragment innerFragment = new InnerFragment();
getChildFragmentManager().beginTransaction().add(R.id.fragment, innerFragment).commit();
}
}
dialog_test.xml
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />