修复单独上拉进入信息表冠失焦 3259/1 3259/head 3260/target/1
authorxue <2144439972@qq.com>
Tue, 10 Mar 2026 06:42:05 +0000 (14:42 +0800)
committerxue <2144439972@qq.com>
Tue, 10 Mar 2026 06:42:05 +0000 (14:42 +0800)
code/sdk/application/wearable/fd272/nativeapp/nativeui/main/src/MainPresenterSample.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/message/include/MessageControlView.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/message/src/MessageControlView.cpp

index dad1bdb..fb1192c 100644 (file)
                  PullUpDownView::GetInstance()->UpdateSignalStrengthStatusAndBatteryPosition();  
                  PullUpDown_StartTimer(2000);  
              }  
-         } else if (MainViewSample::GetInstance()->IsPullUpViewPage() == DROPDOWN) {  
-             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "开始上拉更新");  
-             isPullDownPageView = false;  
-             PullUpDown_StopTimer();  
-         } else {  
+        } else if (MainViewSample::GetInstance()->IsPullUpViewPage() == DROPDOWN) {  
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "开始上拉更新");  
+            isPullDownPageView = false;  
+            PullUpDown_StopTimer();  
+            if (MessageControlView::GetInstance() != nullptr) {
+                MessageControlView::GetInstance()->RequestFocusForMessageList();
+            }
+        } else {
              isPullDownPageView = false;  
              PullUpDown_StopTimer();  
          }
index 16b411a..f0ac394 100644 (file)
@@ -33,7 +33,8 @@ namespace OHOS
         void PreLoad(void) override;
         void UnLoad(void) override;
         void SetLackView(bool flag);
-   
+        /** 让消息列表请求焦点,便于表冠滚动生效(主界面上拉进入消息页时调用) */
+        void RequestFocusForMessageList();
 
     private:
         MessageLackView *messageLackView{nullptr};
index d95047a..832bb2d 100644 (file)
@@ -101,6 +101,13 @@ void MessageControlView::SetLackView(bool flag) {
   }
 }
 
+void MessageControlView::RequestFocusForMessageList() {
+  if (messageCardView != nullptr && messageCardView->GetList() != nullptr) {
+    messageCardView->GetList()->RequestFocus();
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MessageControlView::RequestFocusForMessageList");
+  }
+}
+
 void MessageControlView::PreLoad(void) {
   WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MessageControlView::PreLoad");
   if (!viewiInitStatus) {