[fix] 防止页面重复弹出
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user