【发布时间】:2011-07-23 20:22:18
【问题描述】:
有没有一种方法可以在 Android Fragment 中实现onBackPressed(),类似于我们在 Android Activity 中的实现方式?
由于片段生命周期没有onBackPressed()。有没有其他替代方法可以在 Android 3.0 片段中覆盖onBackPressed()?
【问题讨论】:
-
恕我直言,片段不应该知道也不应该关心返回按钮。一个 Activity 可以关心 BACK 按钮,尽管片段通常由 FragmentManager 处理。但是由于片段不知道其更大的环境(例如,它是否是活动中的几个之一),因此片段尝试确定正确的 BACK 功能是不是真的很安全。
-
当所有的fragment都显示一个WebView,你希望WebView在按下返回按钮时“返回”到上一页怎么样?
-
Michael Herbig 的回答对我来说是完美的。但是对于那些不能使用 getSupportFragmentManager() 的人。请改用 getFragmentManager()。
-
回答 mharper 可能是你可以做类似 webview.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent. KEYCODE_BACK && webview.canGoBack()) { webview.goBack(); return true; } return false; } });
-
嗨,有一种更好、更简洁的方法。官方文档也有记载:developer.android.com/guide/navigation/navigation-custom-back
标签: android android-fragments onbackpressed