【发布时间】:2017-05-25 05:00:29
【问题描述】:
我创建了一个显示网格视图的片段,当单击任何网格项时,它会导致另一个片段。但是当我按下物理后退按钮时,应用程序关闭而不是返回到上一个片段(即包含网格视图的片段)。我该如何解决这个问题?
【问题讨论】:
标签: android android-fragments android-gridview
我创建了一个显示网格视图的片段,当单击任何网格项时,它会导致另一个片段。但是当我按下物理后退按钮时,应用程序关闭而不是返回到上一个片段(即包含网格视图的片段)。我该如何解决这个问题?
【问题讨论】:
标签: android android-fragments android-gridview
试试这个
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0 ){
getFragmentManager().popBackStack();
} else {
super.onBackPressed();
}
}
【讨论】:
'addToBackStack' is used for moving back to previous fragment, you can use a common Function
in your Main activity for changing fragment.
public void change_fragment(Fragment fragment, int frame) {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction trans = manager.beginTransaction();
//trans.setCustomAnimations(R.anim.enterfrom_left, R.anim.exit_to_right,R.anim.enterfrom_left, R.anim.exit_to_right);
trans.replace(frame, fragment);
trans.addToBackStack("hai" + frame);
trans.commit();
}
you can call it from Main activity like this
change_fragment(new Frag(),R.id.fl_main_frag_container);
you can call it from another fragment like this
((MainActivity)getContext()).change_fragment(new Frag(), R.id.fl_main_frag_container);
【讨论】: