我的活动中有一些片段
[1], [2], [3], [4], [5], [6]
如果当前活动片段为 [2],则在返回按钮上按 I 必须从 [2] 返回到 [1],否则不执行任何操作。
这样做的最佳做法是什么?
编辑:应用程序不得从 [3]…[6] 返回到 [2]
原文由 skayred 发布,翻译遵循 CC BY-SA 4.0 许可协议
我的活动中有一些片段
[1], [2], [3], [4], [5], [6]
如果当前活动片段为 [2],则在返回按钮上按 I 必须从 [2] 返回到 [1],否则不执行任何操作。
这样做的最佳做法是什么?
编辑:应用程序不得从 [3]…[6] 返回到 [2]
原文由 skayred 发布,翻译遵循 CC BY-SA 4.0 许可协议
我们创建了一个小型库来处理跨多个片段和/或在 Activity 中的后按。使用就像在你的 gradle 文件中添加依赖一样简单:
compile 'net.skoumal.fragmentback:fragment-back:0.1.0'
让你的片段实现 BackFragment
接口:
public abstract class MyFragment extends Fragment implements BackFragment {
public boolean onBackPressed() {
// -- your code --
// return true if you want to consume back-pressed event
return false;
}
public int getBackPriority() {
return NORMAL_BACK_PRIORITY;
}
}
通知你的片段关于背压:
public class MainActivity extends AppCompatActivity {
@Override
public void onBackPressed() {
// first ask your fragments to handle back-pressed event
if(!BackFragmentHelper.fireOnBackPressedEvent(this)) {
// lets do the default back action if fragments don't consume it
super.onBackPressed();
}
}
}
有关更多详细信息和其他用例,请访问 GitHub 页面:
https://github.com/skoumalcz/fragment-back
原文由 gingo 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答1.3k 阅读✓ 已解决
2 回答2.6k 阅读
2 回答1.7k 阅读
1 回答2.1k 阅读
1 回答1.1k 阅读
1 回答1.3k 阅读
1.3k 阅读
当您在片段之间转换时,请调用
addToBackStack()
作为FragmentTransaction
的一部分:如果您需要更详细的控制(即,当某些片段可见时,您想抑制后退键),您可以在片段的父视图上设置
OnKeyListener
: