修复未绑定时音量UI被遮挡的问题 3236/4
authorxue <2144439972@qq.com>
Thu, 5 Mar 2026 06:26:37 +0000 (14:26 +0800)
committerxue <2144439972@qq.com>
Thu, 5 Mar 2026 06:26:37 +0000 (14:26 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdMainView.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdMainView.cpp

index 0d9dc21..6e60cb3 100644 (file)
@@ -62,6 +62,8 @@ namespace OHOS
         bool ChangeThunderBirdBlueView(int16_t);
         bool ClickFunc(int16_t interface);
         void ChangeView(int16_t hideView, int16_t showView, int16_t subView = -1);
+        /** 将指定 view 的 group 置于 ScrollView 最上层,避免被其他 group 遮挡(如对话界面按音量键时音量条被 RemindButton 盖住) */
+        void BringGroupToFront(int16_t viewId);
         int16_t GetPrevViewId() const { return prevView_; }
         int16_t GetPrevSubViewId() const { return prevSubView_; }
 
index 00bc895..bc6b8ac 100644 (file)
@@ -546,6 +546,7 @@ namespace OHOS
             ScrollView_->Add(backGroundView);
 
             int screenImageMode = ThunderBirdModel::GetInstance()->ReadlocalScreenImage();
+            printf("screenImageMode: %d\n", screenImageMode);
             if(screenImageMode == 1 || screenImageMode == 2)//开启屏保模式(1:屏保模式,2:屏保模式作为对话表情)
             {
                 printf("开启屏保模式\n");
@@ -1059,6 +1060,15 @@ namespace OHOS
         return true;
     }
 
+    void ThunderBirdMainView::BringGroupToFront(int16_t viewId)
+    {
+        if (viewId < 0 || viewId >= MAXVIEW || group[viewId] == nullptr || ScrollView_ == nullptr) {
+            return;
+        }
+        ScrollView_->Remove(group[viewId]);
+        ScrollView_->Add(group[viewId]);
+    }
+
     bool ThunderBirdMainView::ChangeThunderBirdAdjustView(int16_t thisView) // 切换调整界面接口
     {
         if (group[thisView] == nullptr)
@@ -1154,6 +1164,15 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdMainView:: SystemViewId Overstep ones bounds");
             return;
         }
+        // // 离开对话“播放语音”界面时停止 BGM 混播
+        // if (hideView == THUNDERBIRD_DIALOGUEVIEW && currentSubView_ == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING) {
+        //     ThunderBirdModel::GetInstance()->StopDialogueBgm();
+        // }
+        // // 从“聆听”进入“播放语音”界面时启动 BGM 混播(仅对话模式,工厂模式在 HandleJumpDialogueSpeaking 中单独播放)
+        // if (showView == THUNDERBIRD_DIALOGUEVIEW && subView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING &&
+        //     hideView == THUNDERBIRD_DIALOGUEVIEW && currentSubView_ == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING) {
+        //     ThunderBirdModel::GetInstance()->StartDialogueBgm();
+        // }
         if(hideView == THUNDERBIRD_BLUEVIEW && showView != THUNDERBIRD_BLUEVIEW)
         {
             // 退出蓝牙界面时恢复视频播放,但需要先检查屏保模式