diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/SweeperProvider.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/SweeperProvider.java index a2ffa6abe3..6d8ef217fe 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/SweeperProvider.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/SweeperProvider.java @@ -5,6 +5,7 @@ import android.content.Context; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentManager; import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; @@ -32,18 +33,24 @@ public class SweeperProvider implements IMogoOCH { @Override public void init(Context context) { } - private void showFragment() { + FragmentManager supportFragmentManager = activity.getSupportFragmentManager(); if (sweeperFragment == null) { CallerLogger.INSTANCE.d(TAG, "准备add fragment======"); - sweeperFragment = new SweeperFragment(); - activity.getSupportFragmentManager().beginTransaction().add(containerId, sweeperFragment).commitAllowingStateLoss(); + Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(sweeperFragment.TAG); + if (fragmentByTag instanceof SweeperFragment) { + sweeperFragment = (SweeperFragment) fragmentByTag; + } else { + sweeperFragment = new SweeperFragment(); + } + if(!sweeperFragment.isAdded()) { + supportFragmentManager.beginTransaction().add(containerId, sweeperFragment, sweeperFragment.TAG).commitAllowingStateLoss(); + } return; } CallerLogger.INSTANCE.d(TAG, "准备show fragment"); - activity.getSupportFragmentManager().beginTransaction().show(sweeperFragment).commitAllowingStateLoss(); + supportFragmentManager.beginTransaction().show(sweeperFragment).commitAllowingStateLoss(); } - private void hideFragment() { if (sweeperFragment != null) { CallerLogger.INSTANCE.d(TAG, "准备hide fragment"); diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/SweeperFragment.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/SweeperFragment.kt index 0377883e04..f7f3960578 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/SweeperFragment.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/SweeperFragment.kt @@ -37,7 +37,10 @@ import java.math.RoundingMode * 清扫车主界面 */ class SweeperFragment : BaseSweeperTabFragment(), MenuPopWindow.OnMenuItemOnClickListener { - private val TAG = "SweeperFragment" + + companion object{ + const val TAG = "SweeperFragment" + } private var mAdapter: TaskListAdapter? = null private var mCurrentSubPosition: Int = 0 //子任务下标 private var mSubMutableList: MutableList? = null @@ -66,7 +69,7 @@ class SweeperFragment : BaseSweeperTabFragment { //子任务跳过 @@ -290,7 +293,7 @@ class SweeperFragment : BaseSweeperTabFragment { //子任务开始 @@ -397,8 +400,8 @@ class SweeperFragment : BaseSweeperTabFragment