diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/DialogImpl.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/DialogImpl.java index 9afad4c28c..72c5960fd4 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/DialogImpl.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/DialogImpl.java @@ -2,7 +2,8 @@ package com.mogo.module.common.wm; import android.app.Dialog; -import android.content.Context; +import android.view.View; +import android.view.ViewGroup; import com.mogo.module.common.dialog.BaseFloatDialog; import com.mogo.utils.logger.Logger; @@ -12,12 +13,15 @@ import com.mogo.utils.logger.Logger; */ class DialogImpl implements IWindowManagerView { private Dialog dialog; + private View contentView; + @Override public void init(WindowManagerView.WMViewParams params) { Logger.d("DialogImpl", "init===="); dialog = new BaseFloatDialog(params.mContext); - Logger.d("DialogImpl","params view : " + params.mContentView); - dialog.setContentView(params.mContentView); + contentView = params.mContentView; + Logger.d("DialogImpl", "params view : " + contentView); + dialog.setContentView(contentView); } @Override @@ -32,6 +36,12 @@ class DialogImpl implements IWindowManagerView { @Override public void hide() { + /* + * 取得view的父组件,然后移除view + */ + if (contentView != null) { + ((ViewGroup) contentView.getParent()).removeView(contentView); + } dialog.dismiss(); } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpDialog.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpDialog.java index 22ddf0dfd5..ccab292a65 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpDialog.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpDialog.java @@ -86,11 +86,9 @@ public class V2XSeekHelpDialog extends ConstraintLayout implements View.OnClickL try { Logger.d(TAG, "使用windowManager实现"); if (!isShown) { - if (windowManager == null) { - windowManager = new WindowManagerView.Builder( - V2XServiceManager.getMogoEntranceButtonController().getButton(ButtonIndex.BUTTON2).getContext() - ).contentView(this).build(); - } + windowManager = new WindowManagerView.Builder( + V2XServiceManager.getMogoEntranceButtonController().getButton(ButtonIndex.BUTTON2).getContext() + ).contentView(this).build(); windowManager.show(); isShown = true; AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("确定要解除求助状态吗"); diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml index d835db36f1..9f0cc0016a 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml @@ -14,6 +14,7 @@ app:alignContent="flex_start" app:alignItems="center" app:flexDirection="row" + android:paddingStart="@dimen/dp_150" app:flexWrap="wrap" app:justifyContent="flex_start">