私はそれを男の子だった! PageViewerは必要ありません。ここで
私の解決策は、(すべてではないフラグメントでStartActivityでコード化された)である:
private final GuideFragment guideFragment = new GuideFragment();
private final MapFragment mapFragment = new MapFragment();
private final MoreFragment moreFragment = new MoreFragment();
private final android.app.FragmentManager fm = getFragmentManager();
Fragment active = guideFragment;
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_guide:
if(active != guideFragment) {
fm.beginTransaction().show(guideFragment).commit();
}
else {
fm.beginTransaction().hide(active).show(guideFragment).commit();
}
active = guideFragment;
break;
case R.id.navigation_map:
fm.beginTransaction().hide(active).show(mapFragment).commit();
active = mapFragment;
break;
case R.id.navigation_more:
fm.beginTransaction().hide(active).show(moreFragment).commit();
active = moreFragment;
break;
}
return true;
}
};
とのonCreateリスト内のトランザクションをコミットします。 fm.beginTransaction().add(R.id.content,moreFragment).commit(); fm.beginTransaction().add(R.id.content, mapFragment).commit(); fm.beginTransaction().add(R.id.content, guideFragment).commit();
3つのタブがある場合、最初のタブフラグメントを最後にコミットすることが重要です(fragm3、fragm2、fragm1)。
スマートフォンでは、すべてのフラグメントを新規に読み込むことなく、高速でパフォーマンスを向上させることができます。
フラグメントの内容は、直接的または接線的に関連していますか?つまり、各断片の内容が存在し、他の部分がなければ意味をなすことができますか?そうでなければ、おそらく、 'ViewPager'を使ってタブ付きナビゲーションを切り替えることは、あなたの必要条件に適しています。 – CzarMatt
3つのフラグメントはすべて異なるビュー/タブにあります。 View Pagerは自分のクラスですか、それとも自分のアクティビティに追加できますか? –
または正しく理解している - BottomNavigationを削除してViewPagerに置き換える必要がありますか? –