From 63022a3ee3e8f32c59a5d3801c2a0d84d25a7529 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Thu, 23 Jul 2020 19:52:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DDialog=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E7=A7=BB=E9=99=A4View=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/module/common/wm/DialogImpl.java | 16 +++++++++++++--- .../scenario/scene/seek/V2XSeekHelpDialog.java | 8 +++----- .../src/main/res/layout/window_test_console.xml | 1 + 3 files changed, 17 insertions(+), 8 deletions(-) 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">