下面列出了androidx.fragment.app.FragmentTransaction#replace ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static void addFragment(FragmentActivity fragmentActivity, Fragment fragmentToAdd, String fragmentTag) {
FragmentManager supportFragmentManager = fragmentActivity.getSupportFragmentManager();
//Fragment activeFragment = UIService.getActiveFragment(fragmentActivity);
FragmentTransaction fragmentTransaction = supportFragmentManager
.beginTransaction();
/*if (null != activeFragment) {
fragmentTransaction.hide(activeFragment);
}*/
fragmentTransaction.replace(R.id.container, fragmentToAdd,
fragmentTag);
if (supportFragmentManager.getBackStackEntryCount() > 1) {
supportFragmentManager.popBackStack();
}
fragmentTransaction.addToBackStack(fragmentTag);
fragmentTransaction.commit();
supportFragmentManager.executePendingTransactions();
//Log.i(TAG, "BackStackEntryCount: " + supportFragmentManager.getBackStackEntryCount());
}
public void navigateToFragment(Fragment fragment, String tag, boolean addToBackStack, TransitionEffect animation, int containerResId) {
FragmentTransaction transaction = fragmentManager.beginTransaction();
if (animation != null && animation.isAnimation()) {
transaction.setCustomAnimations(animation.enter, animation.exit, animation.popEnter, animation.popExit);
}
if (animation != null && animation.isTransition()) {
transaction.setTransition(animation.transitionId);
}
transaction.replace(containerResId, fragment, fragment.getClass().getName());
if (addToBackStack)
transaction.addToBackStack(tag);
try {
transaction.commitAllowingStateLoss();
} catch (Exception e) {
logger.error("An error occurred while navigating to fragment.", e);
}
}
private void readRules(String path, List<String> lines) {
ArrayList<String> rules_file = new ArrayList<>();
if (lines != null) {
rules_file.addAll(lines);
} else {
rules_file.add("");
}
FragmentTransaction fTrans = settingsActivity.getSupportFragmentManager().beginTransaction();
Bundle bundle = new Bundle();
bundle.putStringArrayList("rules_file", rules_file);
bundle.putString("path", path);
ShowRulesRecycleFrag frag = new ShowRulesRecycleFrag();
frag.setArguments(bundle);
fTrans.replace(android.R.id.content, frag);
fTrans.commit();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// 设置一个exit transition
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
getWindow().setEnterTransition(new Explode());
getWindow().setExitTransition(new Explode());
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
newFragment = new VideoFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frameLayout, newFragment);
transaction.addToBackStack(null);
transaction.commit();
}
private void openCountrySelectFragment(int nodesType, String keyStr) {
if (!isAdded()) {
return;
}
FragmentTransaction fTrans = getParentFragmentManager().beginTransaction();
fTrans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
Fragment frg = new CountrySelectFragment();
Bundle bndl = new Bundle();
bndl.putInt("nodes_type", nodesType);
bndl.putString("countries", val_tor.get(key_tor.indexOf(keyStr)));
frg.setArguments(bndl);
fTrans.replace(android.R.id.content, frg, "CountrySelectFragment");
fTrans.addToBackStack("CountrySelectFragmentTag");
fTrans.commit();
}
@Subscribe
public void openHistoryPage(OpenHistoryEvent event) {
final FragmentManager fm = getSupportFragmentManager();
final FragmentTransaction ft = fm.beginTransaction();
final boolean saveBackStack;
if (listFragment == boardsFragment) {
saveBackStack = true;
} else {
saveBackStack = false;
}
HistoryFragment fragment = HistoryFragment.newInstance(event.watched);
ft.replace(R.id.postitem_list, fragment, TAG_POST_LIST);
if (saveBackStack) {
ft.addToBackStack(null);
}
ft.commit();
listFragment = fragment;
panelLayout.openPane();
}
@Override
public void onPlaylistSelected(String playlistTitle, long playlistID) {
// Create fragment and give it an argument for the selected playlist
PlaylistTracksFragment newFragment = PlaylistTracksFragment.newInstance(playlistTitle, playlistID);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
// set enter / exit animation
final int layoutDirection = getResources().getConfiguration().getLayoutDirection();
newFragment.setEnterTransition(new Slide(GravityCompat.getAbsoluteGravity(GravityCompat.START, layoutDirection)));
newFragment.setExitTransition(new Slide(GravityCompat.getAbsoluteGravity(GravityCompat.END, layoutDirection)));
// Replace whatever is in the fragment_container view with this
// fragment,
// and add the transaction to the back stack so the user can navigate
// back
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack("PlaylistTracksFragment");
// Commit the transaction
transaction.commit();
}
@Override
protected final void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (getSupportFragmentManager().findFragmentByTag(FRAGMENT_TAG) == null) {
fragment = (PreferenceFragment) Fragment
.instantiate(this, PreferenceFragment.class.getName());
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment, fragment, FRAGMENT_TAG);
transaction.commit();
}
initializeFloatingActionButton();
}
/**
* 指定されたアクセスポイントを指定して、次のフラグメントを開く.
* @param accessPoint アクセスポイント
*/
private void moveNextFragment(final PHAccessPoint accessPoint) {
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.setCustomAnimations(R.anim.fragment_slide_right_enter, R.anim.fragment_slide_left_exit,
R.anim.fragment_slide_left_enter, R.anim.fragment_slide_right_exit);
transaction.replace(R.id.fragment_frame, HueFragment02.newInstance(accessPoint));
transaction.commit();
}
/**
* Fragment の遷移.
* @param f Fragment
*/
private void moveFragment(final Fragment f) {
FragmentTransaction t = getSupportFragmentManager().beginTransaction();
t.setTransition(FragmentTransaction.TRANSIT_NONE);
t.replace(android.R.id.content, f);
t.addToBackStack(null);
t.commit();
}
@Override
public void onBoardItemClick(ChanBoard board, boolean saveBackStack) {
final Bundle arguments = new Bundle();
arguments.putString(Extras.EXTRAS_BOARD_NAME, board.getName());
arguments.putString(Extras.EXTRAS_BOARD_TITLE, board.getTitle());
arguments.putBoolean(Extras.EXTRAS_OPTIONS_MENU_ENABLED, false);
PostItemsListFragment fragment = new PostItemsListFragment();
fragment.setArguments(arguments);
final FragmentManager fm = getSupportFragmentManager();
final FragmentTransaction ft = fm.beginTransaction();
final Fragment catalogItemsFragment = fm.findFragmentByTag(TAG_POST_LIST);
if (catalogItemsFragment != null) {
ft.remove(catalogItemsFragment);
}
ft.replace(R.id.postitem_list, fragment, TAG_POST_LIST);
// if (listFragment != null) {
//
// ft.hide(listFragment);
// }
// ft.add(R.id.postitem_list, fragment, TAG_POST_LIST);
if (saveBackStack) {
ft.addToBackStack(null);
}
ft.commit();
listFragment = fragment;
setFabVisibility(fragment.showFab());
}
/**
* フラグメントを追加します.
*
* @param fragment 追加するフラグメント
* @param isBackStack バックスタックに追加する場合はtrue、それ以外はfalse
*/
private void addFragment(Fragment fragment, boolean isBackStack) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(android.R.id.content, fragment, "container");
if (isBackStack) {
transaction.addToBackStack(null);
}
transaction.commit();
}
private void showFragment(final Fragment fragment) {
if (fragment == null)
return;
// Begin the transaction
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
// Replace the contents of the container with the new fragment
ft.replace(R.id.container, fragment);
// or ft.add(R.id.your_placeholder, new FooFragment());
// Complete the changes added above
ft.commit();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
DrawableTintingFragment fragment = new DrawableTintingFragment();
transaction.replace(R.id.sample_content_fragment, fragment);
transaction.commit();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_key_fobs);
ButterKnife.inject(this, this);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
keyFobActivityFragment = new KeyFobsActivityFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, keyFobActivityFragment);
fragmentTransaction.commit();
keyfobMode = MODE_SHOWING_KEYFOBS_LIST;
keyFobBlinkingFragment = new KeyFobsActivityFindingDeviceFragment();
// handle bluetooth adapter on/off state
IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
registerReceiver(bluetoothAdapterStateChangeListener, filter);
bluetoothEnableBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
changeEnableBluetoothAdapterToConnecing();
BluetoothAdapter.getDefaultAdapter().enable();
}
});
}
private void setFragment(Fragment selectedFragment) {
FragmentTransaction ft = getChildFragmentManager().beginTransaction();
ft.replace(R.id.treatments_fragment_container, selectedFragment); // f2_container is your FrameLayout container
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
}
private void showServiceRemover() {
FragmentManager mgr = getSupportFragmentManager();
FragmentTransaction transaction = mgr.beginTransaction();
Fragment fragment = new RemoverFragment();
transaction.replace(R.id.fragment_container, fragment);
transaction.commit();
}
public static void addFragmentToStack(FragmentManager fm, Fragment fragment) {
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_container, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(sStackName);
ft.commit();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dynamicTheme.onCreate(this);
dynamicLanguage.onCreate(this);
setContentView(R.layout.log_view_activity);
logViewFragment = LogViewFragment.newInstance();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, logViewFragment);
transaction.commit();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public void onFragmentInteraction1(String Data) {
//now change to the SecondFragment, pressing the back button should go to main fragment.
FragmentTransaction transaction = fragmentManager.beginTransaction();
//remove firstfragment from the stack and replace it with two.
transaction.replace(R.id.container, SecondFragment.newInstance(String.valueOf(num_two), Data));
// and add the transaction to the back stack so the user can navigate back
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();
num_two++;
}