英文:
Navigate to previous fragment and destroy present fragment
问题
我已经使用导航图实现了许多片段。假设我有 A-> B-> C-> D 的片段流程,其中 A、B、C、D 分别是实现顺序。现在我在片段 D 中,当我点击 D 中的一个按钮时,我想要跳转到片段 C。我该如何做呢?另外,当我到达片段 C 并按下返回按钮时,应返回到片段 B。我想要实现导航到前一个片段并销毁当前片段。即从 D 移动到 C,销毁 D(不希望在按下返回按钮时回到 D)。
英文:
I've implemented many fragments using the navigation graph. Consider I have A-> B-> C-> D
where A, B, C, D are the fragments in order of implementation. Now I am on fragment D and I want to move to fragment C on click of a button in D. How do I do that? Also when I reach fragment C and press the back button it should take me to fragment B. I want to implement navigation to the previous fragment and destroy the current fragment. i.e Move to C from D and destroy D(not want it on the press of a back button).
答案1
得分: 1
以下是翻译好的内容:
你可以使用下面的代码来获取当前视图页的位置:
int position = mViewPager.getCurrentItem();
// 或者
Fragment fragment = adapter.getItem(position);
所以在按钮的点击监听器中,你也可以使用这段代码来动态地跳转到想要的选项卡:
viewpager.setCurrentItem(specificFragmentPosition);
// 例如:viewpager.setCurrentItem(2);
至于第二个问题,你需要在你的片段中重写 onBackPressed()
方法。这个方法在用户点击返回按钮时调用…
因此你可以在你的 onBackPressed()
方法中再次添加这段代码:
viewpager.setCurrentItem(specificFragmentPosition);
英文:
u can use below code you can get current position of your viewpager :
int position = mViewPager.getCurrentItem();
//or
Fragment fragment = adapter.getItem(position);
so also can use this code to dynamicity go which tab u want, so in button click listener set this code:
viewpager.setCurrentItem(specificFragmentPosition);
// like this: viewpager.setCurrentItem(2);
and for second question u have to override onBackPressed() method in your fragment
this method calls when user clicked in back button...
so u can add this code again in your onBackPressed() method,
viewpager.setCurrentItem(specificFragmentPosition);
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论