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