2015/03/19
DialogFragment の中に Fragment を表示する方法
しかし、XML を使った静的な Fragment は入れ子構造に出来ないようです。
では、どうしたら良いのかというと、動的に Fragment を追加してやれば良いです。
以下のように、
onViewCreated()
で Fragment を追加します。この時、getChildFragmentManager()
を使用していることに注意です。TestDialog.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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
1 2 3 4 5 | < FrameLayout android:id = "@+id/fragment" android:layout_width = "match_parent" android:layout_height = "match_parent" /> |