似たような質問がたくさんありました。多くの回答がありましたが、どれも私を助けませんでした。可能であれば明確な答えを得るために明確な質問を投稿しようとします。ViewPagerのフラグメントを新しいものに置き換える方法
私は、(現在は)1つのフラグメント(HomeScreenFragment)しか含まれていないFragmentStatePagerAdapterを持つViewPagerを持つアクティビティを持っています。
Inside HomeScreenFragment私はRecyclerViewを持っています。いくつかの種類のアイコンのリストを持っています。これは、アイテムクリックごとに異なるフラグメントを開くべきです。
HomeScreenFragmentには、名前が "container"のルートレイアウトとしてFrameLayoutがあります。これは私がこのケースでMainTypesFragmentでHomeScreenFragmentを置き換えるために呼んでいる方法である:
private void openAllTypesFragment() {
MainTypesFragment fragment = new MainTypesFragment();
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container, fragment);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.addToBackStack(HomeScreenFragment.class.getName());
transaction.commit();
eventBus.post(new Event(null, Event.EVENT_FRAGMENT));
}
FragmentStatePagerAdapterがMainActivityで初期化されているので、私はどのMainActivityキャッチし、()adapter.notifyDataSetChangedを呼び出してイベントを送信しています。
はそれをこの方法を行う、何も起こりません。私は(getChildFragmentManagerと試み)の代わりgetActivityの()。getSupportFragmentManager()その場合、前断片(HomeScreenFragment)は新しいもの(MainTypesFragment)の下に表示されている..
ここで何が間違っているのですか?
あなたは以前のフラグメントを置き換えたいのですか、それとも古いフラグメントを開くだけですか? –
RecyclerViewアイテムのタイプと、ビューページ内に2番目のフラグメントとして常に存在する1つのフラグメントのタイプに応じて、いくつかの異なるフラグメントに置き換えることができるviewpager(HomeScreenFragment)内に2つのフラグメントを入れたい – user8789149
各ページのフラグメントスタック?ページ1のリストアイテム1をクリックすると、ページ1のリストの上に新しいフラグメントが表示されますか? –