下面列出了android.app.FragmentManager#popBackStackImmediate ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void onBackPressed() {
FragmentManager fm = getFragmentManager();
if (fm.getBackStackEntryCount() > 1) {
fm.popBackStackImmediate();
SettingActivity.this.setTitle(R.string.title_activity_setting);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
} else {
clearMemory();
finish();
}
}
private void changeFragment(Fragment newFragment, FragmentsAvailable newFragmentType, boolean withoutAnimation) {
FragmentManager fm = getFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
/*if (!withoutAnimation && !isAnimationDisabled && currentFragment.shouldAnimate()) {
if (newFragmentType.isRightOf(currentFragment)) {
transaction.setCustomAnimations(R.anim.slide_in_right_to_left,
R.anim.slide_out_right_to_left,
R.anim.slide_in_left_to_right,
R.anim.slide_out_left_to_right);
} else {
transaction.setCustomAnimations(R.anim.slide_in_left_to_right,
R.anim.slide_out_left_to_right,
R.anim.slide_in_right_to_left,
R.anim.slide_out_right_to_left);
}
}*/
if (newFragmentType != FragmentsAvailable.DIALER
&& newFragmentType != FragmentsAvailable.CONTACTS_LIST
&& newFragmentType != FragmentsAvailable.CHAT_LIST
&& newFragmentType != FragmentsAvailable.HISTORY_LIST) {
transaction.addToBackStack(newFragmentType.toString());
} else {
while (fm.getBackStackEntryCount() > 0) {
fm.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
}
transaction.replace(R.id.fragmentContainer, newFragment, newFragmentType.toString());
transaction.commitAllowingStateLoss();
fm.executePendingTransactions();
currentFragment = newFragmentType;
}
public void showChatRoomCreation(
Address peerAddress,
ArrayList<ContactAddress> participants,
String subject,
boolean encrypted,
boolean isGroupChatRoom,
boolean cleanBackStack) {
if (cleanBackStack) {
FragmentManager fm = getFragmentManager();
while (fm.getBackStackEntryCount() > 0) {
fm.popBackStackImmediate();
}
if (isTablet()) {
showEmptyChildFragment();
}
}
Bundle extras = new Bundle();
if (peerAddress != null) {
extras.putSerializable("RemoteSipUri", peerAddress.asStringUriOnly());
}
extras.putSerializable("Participants", participants);
extras.putString("Subject", subject);
extras.putBoolean("Encrypted", encrypted);
extras.putBoolean("IsGroupChatRoom", isGroupChatRoom);
ChatRoomCreationFragment fragment = new ChatRoomCreationFragment();
fragment.setArguments(extras);
changeFragment(fragment, "Chat room creation", true);
}
@Override public void onBackPressed() {
FragmentManager fragmentManager = getFragmentManager();
if (mDrawerLayout.isDrawerOpen(mNavDrawer)) {
mDrawerLayout.closeDrawers();
} else if (fragmentManager.getBackStackEntryCount() != 0) {
fragmentManager.popBackStackImmediate();
configureFragment(
fragmentManager.findFragmentById(R.id.content_frame)
);
} else {
super.onBackPressed();
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
developerInfo();
return true;
}
if (id == R.id.action_question) {
questionsAnswer();
return true;
}
if (id == android.R.id.home) {
FragmentManager fm = getFragmentManager();
if (fm.getBackStackEntryCount() > 1) {
fm.popBackStackImmediate();
SettingActivity.this.setTitle(R.string.title_activity_setting);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
} else {
super.onBackPressed();
}
}
return super.onOptionsItemSelected(item);
}