私はナビゲーション・ドロワー・レイアウトでフラグメントを扱っています。他のフラグメントがframe_containerに表示されるたびに、戻るボタンを押すとHomeFragmentに戻ります。ホームフラグメントが既に表示されている場合は、MainActivity(navigation_drawer_activity)を終了します。メインアクティビティでOnBackPressedのこのコードを修正するのを手伝ってください。HomeFragmentを見つけるためにonBackPressedでfindFragmentByIdを実装する方法
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
}
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_home);
if(fragment!=null && fragment.isVisible()){
clearBackStack();
finish();
}else {
clearBackStack();
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container,new HomeFragment()).commit();
}
}
自由度を管理するためにViewPagerを使用しましたか? – RRTW
フレームレイアウトを使用していません。 –
そしてフラグメントマネージャー。 –