我有一个FragmentActivity。
活动包含一个片段
在片段中,有一个按钮,当点击时,图像视图将在中心出现(View.VISIBLE)
我想要一个后退按钮事件来检查如果图像视图可见,则隐藏它,否则,继续默认的后退按钮事件。
由于FragmentActivity和Fragment是独立的类。 Fragment中没有onBackPressed()。那我该怎么办呢?我想处理Fragment类中的后台事件。
答案 0 :(得分:0)
在Activity中触发onBackPressed()
时,将其与您需要的片段进行通信,请查看此链接以了解如何在片段和活动之间进行通信。
http://developer.android.com/training/basics/fragments/communicating.html
答案 1 :(得分:0)
@Override
public void onBackPressed() {
// If the fragment is here, let him handle it
ourFragment.someMethodWeveCreatedToHandleBackPressed();
// If it was not handled by the method above, then let the super do his usual "back"
if (!handled){
super.onBackPressed();
}
}
答案 2 :(得分:0)
为什么不覆盖片段中的onKeyDown
方法?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Check you image view visibility
if(yourImageView.getVisibility() == View.VISIBLE) {
yourImageView.setVisiblity(View.GONE);
return true; // This line is important to handle the event here and not in the next receiver
}
}
return super.onKeyDown(keyCode, event);
}
让我知道它是否适合您!
答案 3 :(得分:-2)
使用transaction.addToBackStack(null);