ボタンなどの UI 要素がタップされたときに Fragment がレイアウトに追加されるのはよくあることです。ユーザーがボタンをすばやく複数回タップすると、フラグメントが複数回追加され、さまざまな問題が発生する可能性があります。
どうすればこれを防ぐことができますか?
ボタンなどの UI 要素がタップされたときに Fragment がレイアウトに追加されるのはよくあることです。ユーザーがボタンをすばやく複数回タップすると、フラグメントが複数回追加され、さまざまな問題が発生する可能性があります。
どうすればこれを防ぐことができますか?
フラグメントがまだ存在しない場合にのみフラグメントが追加されるようにするヘルパー メソッドを作成しました。
public static void addFragmentOnlyOnce(FragmentManager fragmentManager, Fragment fragment, String tag) {
// Make sure the current transaction finishes first
fragmentManager.executePendingTransactions();
// If there is no fragment yet with this tag...
if (fragmentManager.findFragmentByTag(tag) == null) {
// Add it
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.add(fragment, tag);
transaction.commit();
}
}
アクティビティまたは別のフラグメントからの単純な呼び出し:
addFragmentOnlyOnce(getFragmentManager(), myFragment, "myTag");
これは、android.app.* と android.support.app.* パッケージの両方で機能します。