【问题标题】:Navigate to previous fragment and destroy present fragment导航到上一个片段并销毁当前片段
【发布时间】:2020-09-04 13:03:44
【问题描述】:
我已经使用导航图实现了许多片段。考虑我有 A-> B-> C-> D
其中 A、B、C、D 是按实现顺序排列的片段。现在我在片段 D 上,我想通过单击 D 中的按钮移动到片段 C。我该怎么做?此外,当我到达片段 C 并按下后退按钮时,它应该带我到片段 B。我想实现到前一个片段的导航并销毁当前片段。即从 D 移动到 C 并销毁 D(不希望按下后退按钮)。
【问题讨论】:
标签:
java
android
android-fragments
navigation
android-navigation-graph
【解决方案1】:
你可以使用下面的代码来获取你的viewpager的当前位置:
int position = mViewPager.getCurrentItem();
//or
Fragment fragment = adapter.getItem(position);
所以也可以使用此代码动态转到您想要的选项卡,因此在按钮单击侦听器中设置此代码:
viewpager.setCurrentItem(specificFragmentPosition);
// like this: viewpager.setCurrentItem(2);
对于第二个问题,您必须在片段中覆盖 onBackPressed() 方法
当用户单击后退按钮时调用此方法...
所以你可以在你的 onBackPressed() 方法中再次添加这段代码,
viewpager.setCurrentItem(specificFragmentPosition);