调用popBackStack后会调用哪个函数? 我的意思是,当某个片段在调用popBackStack后变为活动状态时,将调用哪个函数? 我做了调试,但在某些活动完成后点击按钮等调用onResume。 但是我需要通过调用popBackStack
来调用片段变为活动时的函数答案 0 :(得分:0)
我刚才遇到了同样的问题,并试图找出在调用popBackStack后片段变为活动状态时调用的默认方法,但是找不到任何调用的默认方法(这里我的意思是onResume,onAttached等默认情况下方法)。
因此,我在调用popBackStack之后通过显式调用活动片段的方法来解决这个问题。
例如,假设我们在同一个活动中有两个片段A和B,并在片段A上点击了Android设备的后退按钮。
//fragment A
@Override
public void onResume() {
super.onResume();
getView().setFocusableInTouchMode(true);
getView().requestFocus();
getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
// handle back button
FragmentManager fm = getFragmentManager();
fm.popBackStack();
//call fragment B.setBackButtonLister method
B fragment = (B)getFragmentManager().findFragmentByTag(B.TAG);
if (fragment != null){
fragment.setBackButtonListener();
}
return true;
}
return false;
}
});
}
这样,你可以在得到B的句柄后调用片段B的任何方法。
希望这会对你有所帮助,干杯!