From c90b44ebf61e4e37903964067458a93e97f81b3f Mon Sep 17 00:00:00 2001 From: liangxiaojiang <461355754@qq.com> Date: Wed, 3 Sep 2025 01:02:15 +0800 Subject: [PATCH] =?UTF-8?q?1:=E4=BF=AE=E6=94=B9bug=202=EF=BC=9A=E7=BB=99?= =?UTF-8?q?=E6=89=80=E6=9C=89=E8=A7=86=E5=9B=BE=E6=B7=BB=E5=8A=A0=E6=89=8B?= =?UTF-8?q?=E5=8A=A8=E8=B0=83=E7=94=A8=E9=94=80=E6=AF=81=E7=9A=84=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dialog/RechargeDialogFragment.java | 3 +- .../moduleroom/activity/RoomActivity.java | 168 ++++++++++++++---- .../dialog/PublishCommentDialogFragment.java | 3 +- .../dialog/RequestDialogFragment.java | 3 +- .../dialog/RoomGiftDialogFragment.java | 3 +- .../dialog/RoomMessageDialogFragment.java | 3 +- .../dialog/RoomOnlineDialogFragment.java | 4 +- .../dialog/RoomSettingFragment.java | 3 +- .../dialog/SoundEffectsDialogFragment.java | 3 +- .../fragment/FriendshipRoomFragment.java | 71 +++++++- .../PublicScreenEaseChatFragment.java | 19 +- .../fragment/RoomAuctionFragment.java | 12 +- .../fragment/RoomCabinFragment.java | 110 +++++++----- .../moduleroom/fragment/RoomFragment.java | 73 +++++++- .../moduleroom/fragment/RoomKtvFragment.java | 21 +-- .../moduleroom/fragment/SingSongFragment.java | 21 +-- 16 files changed, 394 insertions(+), 126 deletions(-) diff --git a/moduleUtil/src/main/java/com/xscm/moduleutil/dialog/RechargeDialogFragment.java b/moduleUtil/src/main/java/com/xscm/moduleutil/dialog/RechargeDialogFragment.java index d0f035b..835b0b2 100644 --- a/moduleUtil/src/main/java/com/xscm/moduleutil/dialog/RechargeDialogFragment.java +++ b/moduleUtil/src/main/java/com/xscm/moduleutil/dialog/RechargeDialogFragment.java @@ -47,13 +47,14 @@ public class RechargeDialogFragment extends BaseMvpDialogFragment sActivityRef; + // 存储当前显示的弹框引用 + private List activeDialogs = new ArrayList<>(); + private List activeDialogFragments = new ArrayList<>(); + // 添加弹框到管理列表 + public void addActiveDialog(DialogInterface dialog) { + activeDialogs.add(dialog); + } + + public void addActiveDialogFragment(Fragment dialogFragment) { + activeDialogFragments.add(dialogFragment); + } @Override protected void onNewIntent(Intent intent) { password = intent.getStringExtra("password"); @@ -303,6 +316,7 @@ public class RoomActivity extends BaseMvpActivity { - RechargeDialogFragment.show(roomId, null, getSupportFragmentManager()); -// DialogUtils.showDialogFragment(ARouter.getInstance().build(ARouteConstants.RECHARGE_DIALOG).navigation()); - }, 1400); + RechargeDialogFragment fragment = RechargeDialogFragment.show(roomId, null, getSupportFragmentManager()); + if (fragment != null) { + addActiveDialogFragment(fragment); // 添加到管理列表 + } + }, 1400); } hideGiftGiveProgress(); } @@ -626,7 +642,11 @@ public class RoomActivity extends BaseMvpActivity { MvpPre.acceptPk(pk_id, "2"); // 点击“取消”按钮时什么都不做 - }, true, 10).show(); + }, true, 10); + dialog.show(); + addActiveDialog(dialog); } /** @@ -1641,8 +1663,12 @@ public class RoomActivity extends BaseMvpActivity { // 点击“取消”按钮时什么都不做 - }, false, 0).show(); + }, false, 0); + dialog.show(); + addActiveDialog(dialog); } /** @@ -2005,7 +2060,7 @@ public class RoomActivity extends BaseMvpActivity PublishCommentDialogFragment.show(roomId, getSupportFragmentManager())); + mBinding.ivQuanQiang.setOnClickListener(v -> { + PublishCommentDialogFragment fragment = PublishCommentDialogFragment.show(roomId, getSupportFragmentManager()); + if (fragment != null) { + addActiveDialogFragment(fragment); // 添加到管理列表 + } + }); mBinding.ivQuanC.setOnClickListener(v -> ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS) .withString("from", "我的界面") .withString("roomId", mRoomInfoResp.getRoom_info().getHead_line().getRoom_id()) @@ -2333,6 +2393,7 @@ public class RoomActivity extends BaseMvpActivity implements RoomCabinContacts.View { + private static final String LABEL_ID_MOVIE = "5"; protected String roomId; protected String pitNumber;//当前点击的麦序 protected CommonDialog commonDialog; @@ -99,12 +97,11 @@ public class RoomCabinFragment extends BaseRoomFragment fragments = getChildFragmentManager().getFragments(); if (!fragments.isEmpty()) { + for (Fragment fragment : fragments) { + if (fragment != null) { + // 检查Fragment是否实现了特定的销毁接口 + if (fragment instanceof SingSongFragment) { + ((SingSongFragment) fragment).releaseResources(); + }else if (fragment instanceof RoomKtvFragment){ + ((RoomKtvFragment) fragment).releaseResources(); + }else if (fragment instanceof FriendshipRoomFragment){ + ((FriendshipRoomFragment) fragment).releaseResources(); + }else if (fragment instanceof RoomCabinFragment){ + ((RoomCabinFragment) fragment).releaseResources(); + }else if (fragment instanceof RoomAuctionFragment) { + ((RoomAuctionFragment) fragment).releaseResources(); + } + + } + } + + // 最后移除所有Fragment FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); for (Fragment fragment : fragments) { if (fragment != null) { @@ -188,6 +224,9 @@ public class RoomFragment extends BaseMvpFragment