問題
Googleのドキュメントによると:
フラグメントをフラグメント内に埋め込むことができるようになりました。これは、動的で再利用可能な UI コンポーネントを、動的で再利用可能な UI コンポーネントに配置するさまざまな状況で役立ちます。たとえば、ViewPager を使用して左右にスワイプし、画面スペースの大部分を消費するフラグメントを作成する場合、フラグメントを各フラグメント ページに挿入できるようになりました。フラグメントをネストするには、フラグメントを追加する Fragment で getChildFragmentManager() を呼び出すだけです。これにより FragmentManager が返され、トップレベルのアクティビティから通常のように使用してフラグメント トランザクションを作成できます。たとえば、既存の Fragment クラス内からフラグメントを追加するコードを次に示します。
Fragment videoFragment = new VideoPlayerFragment();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.add(R.id.video_fragment, videoFragment).commit();
だから私は(例えば)TestFragment
のように見えました:
public class TestFragment extends Fragment {
private View mFragmentView;
private FrameLayout mFrameLayout;
public HistoryFragment() {
super();
}
@Override
public View onCreateView(LayoutInflater pInflater, ViewGroup pViewGroup, Bundle pBundle) {
mFragmentView = pInflater.inflate(R.layout.fragment_layout, pViewGroup, false);
mFrameLayout = (FrameLayout) mFragmentView.findViewById(R.id.framelayout);
return mFragmentView;
}
public void onDestroyView() {
super.onDestroyView();
}
/* ISSUE */
public void doSomethingSpecial() {
FragmentManager tFragmentManager = getChildFragmentManager();
}
}
で、次のMainActivity
ようにフラグメントを初期化します。
mTestFragment = new TestFragment();
mTestFragment.doSomethingSpecial();
次に、フラグメントをViewPager
viaに渡しFragmentPagerAdapter
ます。
最後に、例外が発生します。しかし、私だけを使用する場合:
mTestFragment = new TestFragment();
その後、動作します。
質問
getChildFragmentManager()
フラグメントのどこでメソッドを呼び出す必要がありますか? 私が間違っていることは何ですか?
新しい Android Nested Fragments を使用した良い例があれば、リンクを共有してください。どうぞよろしくお願いいたします。