[fix] 防止页面重复弹出

This commit is contained in:
yangyakun
2022-09-09 15:22:26 +08:00
parent 9f2d5d8fbf
commit f1b86b2acf
2 changed files with 13 additions and 3 deletions

View File

@@ -13,6 +13,8 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import com.mogo.commons.debug.DebugConfig;
@@ -381,8 +383,15 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
}
public void showLoginDialogFragment(){
CallerLogger.INSTANCE.d(M_TAXI + TAG,"showLoginDialogFragment 展示登录界面");
CallerHmiManager.INSTANCE.hideToolsView();
Fragment fragmentByTag = getParentFragmentManager().findFragmentByTag(TaxiLoginDialogFragment.Companion.getTAG());
if(fragmentByTag instanceof DialogFragment){
DialogFragment dialogFragment = (DialogFragment)fragmentByTag;
if(dialogFragment.getDialog()!=null&&dialogFragment.getDialog().isShowing()){
return;
}
}
if(taxiLoginDialogFragment==null||taxiLoginDialogFragment.get()==null) {
taxiLoginDialogFragment = new WeakReference<>(TaxiLoginDialogFragment.newInstance());
}
@@ -394,7 +403,8 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
if (taxiLoginDialog.isAdded()) {//解决方法就是添加这行代码如果已经添加了就移除掉然后再show就不会出现Fragment already added的错误了。
getParentFragmentManager().beginTransaction().remove(taxiLoginDialog).commitAllowingStateLoss();
}
taxiLoginDialog.show(getParentFragmentManager(), taxiLoginDialog.getTag());
CallerLogger.INSTANCE.d(M_TAXI + TAG,"showLoginDialogFragment 展示登录界面");
taxiLoginDialog.show(getParentFragmentManager(), TaxiLoginDialogFragment.Companion.getTAG());
taxiLoginDialog.setOnDismissListener(dialog -> {
taxiLoginDialogFragment.clear();
mPresenter.queryLoginStatus();

View File

@@ -230,7 +230,7 @@ class TaxiLoginDialogFragment : MvpDialogFragment<TaxiLoginDialogFragment?, Taxi
companion object {
private val TAG = TaxiLoginDialogFragment::class.java.simpleName
val TAG = TaxiLoginDialogFragment::class.java.simpleName
@JvmStatic
fun newInstance(): TaxiLoginDialogFragment {