我正在为一个项目创建一个应用程序。事实是,我正在使用BottomNavigationView来浏览活动。但是,这里存在一个问题,当我按下“后退按钮”时,即使我多次访问同一个选项卡,该应用程序也会浏览我浏览的每个页面。
我想要达到的功能类似于Instagram所实现的功能:尽管以前已经浏览过同一标签,但只浏览了一次。
观看gif以了解我的意思。 https://gyazo.com/a7f536dbe1b204923ea790db50e8a88e
我每次触摸BottomNavigationView中的项目时都会执行此代码。
case R.id.bnHome:
Intent intentHome = new Intent(context,HomeActivity.class);
context.startActivity(intentHome);
callingActivity.overridePendingTransition(R.anim.fade_in,R.anim.fade_out);
break;
当前情况:当我开始关闭时:搜索->个人资料->搜索->个人资料->主页->退出
期望值:开始关闭时:搜索->个人资料->主页->退出
答案 0 :(得分:0)
使用碎片可以达到此行为。像View一样对其进行片段化,但具有与Activity相似的生命周期,它们的创建是为了重用和去耦UI。这是an example的确切构建所需内容的方法。
答案 1 :(得分:0)
首先,您需要使用Fragment来获得更具可读性和可维护性的导航结构。
第二,
使您的活动成为一项任务
<activity
android:name=".MyActivity"
android:launchMode="singleTask" >
</activity>
在startActivity调用期望来自Home之后添加finish()。
case R.id.bnHome:
Intent intentHome = new Intent(context,HomeActivity.class);
context.startActivity(intentHome);
callingActivity.overridePendingTransition(R.anim.fade_in,R.anim.fade_out);
finish();
break;
这可能是可行的,但是如果您选择使用片段,则无需为每个页面初始化底部栏或其他常见的视图或操作。