下面列出了androidx.fragment.app.FragmentTransaction#commitNow ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && !isLoad && isAdded()) {
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
FragmentRecmdUserHorizontal recmdUser = new FragmentRecmdUserHorizontal();
transaction.add(R.id.fragment_container, recmdUser, "FragmentRecmdUserHorizontal");
FragmentEvent fragmentFollowIllust = new FragmentEvent();
transaction.add(R.id.fragment_recy, fragmentFollowIllust);
transaction.commitNow();
isLoad = true;
}
}
public void switchTo(String tag) {
ensureStateWasRestored();
if (mCurrentFragment != null && tag.equals(mCurrentFragment.getTag()))
return;
FragmentTransaction transaction = mFragmentManager.beginTransaction();
if (mCurrentFragment != null) {
transaction.hide(mCurrentFragment);
}
Fragment newFragment = mFragmentManager.findFragmentByTag(tag);
if (newFragment != null) {
transaction.show(newFragment);
} else {
newFragment = mFragmentFactory.createFragment(tag);
transaction.add(mContainerId, newFragment, tag);
}
mCurrentFragment = newFragment;
transaction.commitNow();
}
@Override
public void onParticipatingGame(@NonNull GamePermalink game) {
currentGame = game;
if (isFinishing() || isDestroyed()) return;
inflateNavigation(Layout.ONGOING);
synchronized (fragmentsLock) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
ongoingGameFragment = OngoingGameFragment.getInstance(game);
addOrReplace(transaction, ongoingGameFragment, Item.ONGOING_GAME);
if (pyx.config().gameChatEnabled()) {
gameChatFragment = ChatFragment.getGameInstance(game.gid);
addOrReplace(transaction, gameChatFragment, Item.GAME_CHAT);
}
try {
transaction.commitNow();
navigation.setSelectedItem(Item.ONGOING_GAME);
} catch (IllegalStateException ex) {
AnalyticsApplication.crashlyticsLog(ex.getMessage() + " at #onParticipatingGame(GamePermalink)");
}
}
}
public void pop(@NonNull TransitionAnimation animation) {
List<Fragment> fragments = getFragments();
int count = fragments.size();
if (count == 0) {
throw new IllegalStateException("Can't pop fragment when stack is empty.");
}
Fragment currentFragment = fragments.get(count - 1);
Fragment previousFragment = count > 1 ? fragments.get(count - 2) : null;
FragmentTransaction transaction = mFragmentManager.beginTransaction();
if (previousFragment != null) {
animation.applyBeforeFragmentTransactionExecuted(transaction, previousFragment, currentFragment);
}
transaction.remove(currentFragment);
if (previousFragment != null) {
transaction.attach(previousFragment);
}
transaction.commitNow();
if (previousFragment != null) {
animation.applyAfterFragmentTransactionExecuted(previousFragment, currentFragment);
}
}
public void popUntil(@NonNull Fragment fragment, @NonNull TransitionAnimation animation) {
List<Fragment> fragments = getFragments();
int count = fragments.size();
int index = fragments.indexOf(fragment);
if (index == -1) {
throw new IllegalArgumentException("Fragment is not found.");
}
if (index == count - 1) {
return; // nothing to do
}
FragmentTransaction transaction = mFragmentManager.beginTransaction();
for (int i = index + 1; i < count; i++) {
if (i == count - 1) {
animation.applyBeforeFragmentTransactionExecuted(transaction, fragment, fragments.get(i));
}
transaction.remove(fragments.get(i));
}
transaction.attach(fragment);
transaction.commitNow();
animation.applyAfterFragmentTransactionExecuted(fragment, fragments.get(count - 1));
}
public void push(@NonNull Fragment fragment, @NonNull TransitionAnimation animation) {
Fragment currentFragment = getCurrentFragment();
FragmentTransaction transaction = mFragmentManager.beginTransaction();
if (currentFragment != null) {
animation.applyBeforeFragmentTransactionExecuted(transaction, fragment, currentFragment);
transaction.detach(currentFragment);
}
int index = getFragmentCount();
transaction.add(mContainerId, fragment, getFragmentTag(index));
transaction.commitNow();
if (currentFragment != null) {
animation.applyAfterFragmentTransactionExecuted(fragment, currentFragment);
}
}
public void replace(@NonNull Fragment fragment, @NonNull TransitionAnimation animation) {
Fragment currentFragment = getCurrentFragment();
FragmentTransaction transaction = mFragmentManager.beginTransaction();
if (currentFragment != null) {
animation.applyBeforeFragmentTransactionExecuted(transaction, fragment, currentFragment);
transaction.remove(currentFragment);
}
int count = getFragmentCount();
int index = count == 0 ? 0 : count - 1;
transaction.add(mContainerId, fragment, getFragmentTag(index));
transaction.commitNow();
if (currentFragment != null) {
animation.applyAfterFragmentTransactionExecuted(fragment, currentFragment);
}
}
public void reset(@NonNull Fragment fragment, @NonNull TransitionAnimation animation) {
List<Fragment> fragments = getFragments();
int count = fragments.size();
FragmentTransaction transaction = mFragmentManager.beginTransaction();
for (int i = 0; i < count; i++) {
if (i == count - 1) {
animation.applyBeforeFragmentTransactionExecuted(transaction, fragment, fragments.get(i));
}
transaction.remove(fragments.get(i));
}
transaction.add(mContainerId, fragment, getFragmentTag(0));
transaction.commitNow();
if (count > 0) {
animation.applyAfterFragmentTransactionExecuted(fragment, fragments.get(count - 1));
}
}
public void switchTo(@NonNull Fragment fragment, @NonNull TransitionAnimation animation) {
List<Fragment> fragments = getFragments();
boolean isNewFragment = !fragments.contains(fragment);
Fragment currentFragment = getCurrentFragment();
FragmentTransaction transaction = mFragmentManager.beginTransaction();
if (currentFragment != null) {
animation.applyBeforeFragmentTransactionExecuted(transaction, fragment, currentFragment);
transaction.detach(currentFragment);
}
if (isNewFragment) {
transaction.add(mContainerId, fragment, getFragmentTag(fragments.size()));
} else {
transaction.attach(fragment);
}
transaction.commitNow();
if (currentFragment != null) {
animation.applyAfterFragmentTransactionExecuted(fragment, currentFragment);
}
}
private void startPickerFragment() {
calendar =
MaterialCalendar.newInstance(
dateSelector, getThemeResId(requireContext()), calendarConstraints);
pickerFragment =
headerToggleButton.isChecked()
? MaterialTextInputPicker.newInstance(dateSelector, calendarConstraints)
: calendar;
updateHeader();
FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.mtrl_calendar_frame, pickerFragment);
fragmentTransaction.commitNow();
pickerFragment.addOnSelectionChangedListener(
new OnSelectionChangedListener<S>() {
@Override
public void onSelectionChanged(S selection) {
updateHeader();
confirmButton.setEnabled(dateSelector.isSelectionComplete());
}
@Override
void onIncompleteSelectionChanged() {
confirmButton.setEnabled(false);
}
});
}