导航到上一个片段并销毁当前片段。

huangapple go评论63阅读模式
英文:

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);

huangapple
  • 本文由 发表于 2020年9月4日 21:03:44
  • 转载请务必保留本文链接:https://go.coder-hub.com/63741774.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定