[英]Back press to the previous fragment or home in android
我正在尝试在我的应用程序中向后按移动到上一个片段或主页片段,请指导我实现它。 提前致谢
添加addToBackstack(null)
当您更改活动中的片段时,如下所示:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new Fragment()).addToBackStack(null).commit();
每当您将片段添加到后台堆栈时,当您按下后退按钮时,它将从其中弹出,并且应用程序将返回到也添加到后台堆栈的上一个片段。
我使用此代码在片段之间导航
这个方法负责加载需要的片段
public void loadFragment(Fragment fragment, String tag) {
if (fragment != null) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, fragment, tag)
.commit();
}
}
加载片段使用:
loadFragment(new HomeFragment(), "HomeFragment");
在您的活动中像这样处理背压:
@Override
public void onBackPressed() {
HomeFragment homeFragment = (HomeFragment) getSupportFragmentManager().findFragmentByTag("HomeFragment");
SearchFragment searchFragment = (SearchFragment) getSupportFragmentManager().findFragmentByTag("ConnectionFragment");
NotificationFragment notificationFragment = (NotificationFragment) getSupportFragmentManager().findFragmentByTag("NotificationFragment");
if (homeFragment != null && homeFragment.isVisible()) {
finish();
}
if (searchFragment != null && searchFragment.isVisible()) {
loadFragment(new HomeFragment(), "HomeFragment");
navigationView.setSelectedItemId(R.id.navigation_home);
}
if (notificationFragment != null && notificationFragment.isVisible()) {
loadFragment(new HomeFragment(), "HomeFragment");
navigationView.setSelectedItemId(R.id.navigation_home);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.