修复Dialog关闭没有移除View的bug

This commit is contained in:
董宏宇
2020-07-23 19:52:15 +08:00
parent d7a900c735
commit 63022a3ee3
3 changed files with 17 additions and 8 deletions

View File

@@ -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();
}
}

View File

@@ -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("确定要解除求助状态吗");

View File

@@ -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">