解决运动界面中:更多运动息屏按键监听和表冠聚焦失效问题
authorluozheng <1732036298@qq.com>
Mon, 12 Jan 2026 07:48:33 +0000 (15:48 +0800)
committerluozheng <1732036298@qq.com>
Mon, 12 Jan 2026 07:48:33 +0000 (15:48 +0800)
32 files changed:
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_aquatic/include/TraingAquaticPresenter.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_aquatic/include/TraingAquaticView.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_aquatic/src/TraingAquaticPresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_ball/include/TraingBallPresenter.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_ball/include/TraingBallView.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_ball/src/TraingBallPresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_ball/src/TraingBallView.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_dance/include/TraingDancePresenter.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_dance/include/TraingDanceView.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_dance/src/TraingDancePresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_dance/src/TraingDanceView.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_fitness/include/TraingFitnessPresenter.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_fitness/include/TraingFitnessView.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_fitness/src/TraingFitnessPresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_fitness/src/TraingFitnessView.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_ice/include/TraingIcePresenter.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_ice/include/TraingIceView.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_ice/src/TraingIcePresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_ice/src/TraingIceView.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_more/include/TraingMorePresenter.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_more/include/TraingMoreView.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_more/src/TraingMorePresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_more/src/TraingMoreView.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_other/include/TraingOtherPresenter.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_other/include/TraingOtherView.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_other/src/TraingOtherPresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_other/src/TraingOtherView.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_rest/include/TraingRestPresenter.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_rest/include/TraingRestView.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_rest/src/TraingRestPresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_list_rest/src/TraingRestView.cpp

index ef0d888..e3b7a3a 100644 (file)
@@ -34,7 +34,7 @@ namespace OHOS
         virtual ~TraingAquaticPresenter();
 
         void OnStart() override;
-        void OnStop() override;
+        void OnResume() override;
 
         static TraingAquaticPresenter *GetInstance();
 
index 477ddee..eab0efa 100644 (file)
@@ -36,7 +36,7 @@ namespace OHOS
         void OnStart() override;
 
 
-        UIList *GetList();
+        UIList *GetAquaticList();
         void AddToTraingAquaticList(const TraingAquaticItem &item);
         void RefreshTraingAquaticList(const TraingAquaticItem *itemInfo);
     private:
index f5c9a11..1c506e1 100644 (file)
@@ -61,10 +61,13 @@ namespace OHOS
         view_->RefreshTraingAquaticList(itemInfo);
     }
 
-    void TraingAquaticPresenter::OnStop(void)
+    void TraingAquaticPresenter::OnResume(void)
     {
-
-        Presenter<TraingAquaticView>::OnStop();
+        RootView::GetInstance()->SetOnKeyActListener(this);
+        if (TraingAquaticView::GetInstance()->GetAquaticList() != nullptr)
+        {
+            TraingAquaticView::GetInstance()->GetAquaticList()->RequestFocus();
+        }
     }
     bool TraingAquaticPresenter::OnDrag(UIView &view, const DragEvent &event)
     {
index 45535d4..59bf4f8 100644 (file)
@@ -128,4 +128,7 @@ void TraingAquaticView::RefreshTraingAquaticList(const TraingAquaticItem *itemIn
   TraingAquaticList->RefreshList();
 }
 
+UIList *TraingAquaticView::GetAquaticList() {
+  return TraingAquaticList;
+}
 } // namespace OHOS
\ No newline at end of file
index 7f20875..2b05619 100644 (file)
@@ -34,7 +34,7 @@ namespace OHOS
         virtual ~TraingBallPresenter();
 
         void OnStart() override;
-        void OnStop() override;
+        void OnResume() override;
 
         static TraingBallPresenter *GetInstance();
 
index ab2a3a5..afa921a 100644 (file)
@@ -36,7 +36,7 @@ public:
   void OnStart() override;
 
 
-  UIList *GetList();
+  UIList *GetBallList();
   void AddToTraingBallList(const TraingBallItem &item);
   void RefreshTraingBallList(const TraingBallItem *itemInfo);
 private:
index 969afad..879f1d0 100644 (file)
@@ -61,10 +61,13 @@ namespace OHOS
         view_->RefreshTraingBallList(itemInfo);
     }
 
-    void TraingBallPresenter::OnStop(void)
+    void TraingBallPresenter::OnResume(void)
     {
-
-        Presenter<TraingBallView>::OnStop();
+        RootView::GetInstance()->SetOnKeyActListener(this);
+        if (TraingBallView::GetInstance()->GetBallList() != nullptr)
+        {
+            TraingBallView::GetInstance()->GetBallList()->RequestFocus();
+        }
     }
     bool TraingBallPresenter::OnDrag(UIView &view, const DragEvent &event)
     {
index a1972b8..e9db10c 100644 (file)
@@ -126,4 +126,9 @@ void TraingBallView::RefreshTraingBallList(const TraingBallItem *itemInfo) {
   TraingBallList->RefreshList();
 }
 
+UIList *TraingBallView::GetBallList() {
+  return TraingBallList;
+}
+
+
 } // namespace OHOS
\ No newline at end of file
index 49b8bf9..1798e85 100644 (file)
@@ -28,7 +28,7 @@ namespace OHOS
         virtual ~TraingDancePresenter();
 
         void OnStart() override;
-        void OnStop() override;
+        void OnResume() override;
 
         static TraingDancePresenter *GetInstance();
 
index 4247eb1..1852d3b 100644 (file)
@@ -26,7 +26,7 @@ public:
   void OnStart() override;
 
 
-  UIList *GetList();
+  UIList *GetDanceList();
   void AddToTraingDanceList(const TraingDanceItem &item);
   void RefreshTraingDanceList(const TraingDanceItem *itemInfo);
 private:
index 50459e9..b53d43b 100644 (file)
@@ -60,10 +60,13 @@ namespace OHOS
         view_->RefreshTraingDanceList(itemInfo);
     }
 
-    void TraingDancePresenter::OnStop(void)
+    void TraingDancePresenter::OnResume(void)
     {
-
-        Presenter<TraingDanceView>::OnStop();
+        RootView::GetInstance()->SetOnKeyActListener(this);
+        if (TraingDanceView::GetInstance()->GetDanceList() != nullptr)
+        {
+            TraingDanceView::GetInstance()->GetDanceList()->RequestFocus();
+        }
     }
     bool TraingDancePresenter::OnDrag(UIView &view, const DragEvent &event)
     {
index 286125c..6464b97 100644 (file)
@@ -126,4 +126,8 @@ void TraingDanceView::RefreshTraingDanceList(const TraingDanceItem *itemInfo) {
   TraingDanceList->SetAdapter(p_TraingDanceListAdapter);
   TraingDanceList->RefreshList();
 }
+
+UIList *TraingDanceView::GetDanceList() {
+  return TraingDanceList;
+}
 } // namespace OHOS
\ No newline at end of file
index 8e3518a..92ccbce 100644 (file)
@@ -22,7 +22,7 @@ namespace OHOS
         virtual ~TraingFitnessPresenter();
 
         void OnStart() override;
-        void OnStop() override;
+        void OnResume() override;
 
         static TraingFitnessPresenter *GetInstance();
 
index 3f17e8c..d7bb3e7 100644 (file)
@@ -58,10 +58,13 @@ namespace OHOS
         view_->RefreshTraingFitnessList(itemInfo);
     }
 
-    void TraingFitnessPresenter::OnStop(void)
+    void TraingFitnessPresenter::OnResume(void)
     {
-
-        Presenter<TraingFitnessView>::OnStop();
+        RootView::GetInstance()->SetOnKeyActListener(this);
+        if (TraingFitnessView::GetInstance()->GetFitnessList() != nullptr)
+        {
+            TraingFitnessView::GetInstance()->GetFitnessList()->RequestFocus();
+        }
     }
     bool TraingFitnessPresenter::OnDrag(UIView &view, const DragEvent &event)
     {
index ba7bac8..2768055 100644 (file)
@@ -128,4 +128,9 @@ void TraingFitnessView::RefreshTraingFitnessList(const TraingFitnessItem *itemIn
   TraingFitnessList->SetAdapter(p_TraingFitnessListAdapter);
   TraingFitnessList->RefreshList();
 }
+
+UIList *TraingFitnessView::GetFitnessList() {
+  return TraingFitnessList;
+}
+
 } // namespace OHOS
\ No newline at end of file
index 8e9c71a..843988b 100644 (file)
@@ -28,7 +28,7 @@ namespace OHOS
         virtual ~TraingIcePresenter();
 
         void OnStart() override;
-        void OnStop() override;
+        void OnResume() override;
 
         static TraingIcePresenter *GetInstance();
 
index cc09986..d345e18 100644 (file)
@@ -26,7 +26,7 @@ public:
   void OnStart() override;
 
 
-  UIList *GetList();
+  UIList *GetIceList();
   void AddToTraingIceList(const TraingIceItem &item);
   void RefreshTraingIceList(const TraingIceItem *itemInfo);
 private:
index 470fa5b..b7ff844 100644 (file)
@@ -60,10 +60,13 @@ namespace OHOS
    
         view_->RefreshTraingIceList(itemInfo);
     }
-    void TraingIcePresenter::OnStop(void)
+    void TraingIcePresenter::OnResume(void)
     {
-
-        Presenter<TraingIceView>::OnStop();
+        RootView::GetInstance()->SetOnKeyActListener(this);
+        if (TraingIceView::GetInstance()->GetIceList() != nullptr)
+        {
+            TraingIceView::GetInstance()->GetIceList()->RequestFocus();
+        }
     }
     bool TraingIcePresenter::OnDrag(UIView &view, const DragEvent &event)
     {
index c07e23c..e91e0aa 100644 (file)
@@ -129,4 +129,8 @@ void TraingIceView::RefreshTraingIceList(const TraingIceItem *itemInfo) {
   TraingIceList->RefreshList();
 }
 
+UIList *TraingIceView::GetIceList() {
+  return TraingIceList;
+}
+
 } // namespace OHOS
\ No newline at end of file
index 1dac057..89f9ed4 100644 (file)
@@ -34,7 +34,7 @@ namespace OHOS
         virtual ~TraingMorePresenter();
 
         void OnStart() override;
-        void OnStop() override;
+        void OnResume() override;
         void NavigateBack();
 
         static TraingMorePresenter *GetInstance();
index 69aea52..732d148 100644 (file)
@@ -26,7 +26,7 @@ public:
   void OnStart() override;
 
 
-  UIList *GetList();
+  UIList *GetMoreList();
   void AddToTraingMoreList(const TraingMoreItem &item);
   void RefreshTraingMoreList(const TraingMoreItem *itemInfo);
 private:
index 903555d..a35a02b 100644 (file)
@@ -62,9 +62,13 @@ namespace OHOS
         view_->RefreshTraingMoreList(itemInfo);\r
         \r
     }\r
-    void TraingMorePresenter::OnStop(void) \r
+    void TraingMorePresenter::OnResume(void) \r
     { \r
-        Presenter<TraingMoreView>::OnStop(); \r
+        RootView::GetInstance()->SetOnKeyActListener(this);\r
+        if (TraingMoreView::GetInstance()->GetMoreList() != nullptr)\r
+        {\r
+            TraingMoreView::GetInstance()->GetMoreList()->RequestFocus();\r
+        }\r
     }\r
 \r
     void TraingMorePresenter::NavigateBack()\r
index de8c34b..984300d 100644 (file)
@@ -122,4 +122,8 @@ void TraingMoreView::RefreshTraingMoreList(const TraingMoreItem *itemInfo) {
   TraingMoreList->RefreshList();\r
 }\r
 \r
+UIList *TraingMoreView::GetMoreList() {\r
+  return TraingMoreList;\r
+}\r
+\r
 } // namespace OHOS
\ No newline at end of file
index 271bb7b..500dfaf 100644 (file)
@@ -28,7 +28,7 @@ namespace OHOS
         virtual ~TraingOtherPresenter();
 
         void OnStart() override;
-        void OnStop() override;
+        void OnResume() override;
 
         static TraingOtherPresenter *GetInstance();
 
index 337c59d..9335eb5 100644 (file)
@@ -76,10 +76,13 @@ namespace OHOS
         view_->RefreshTraingOtherList(itemInfo);
     }
 
-    void TraingOtherPresenter::OnStop(void)
+    void TraingOtherPresenter::OnResume(void)
     {
-
-        Presenter<TraingOtherView>::OnStop();
+        RootView::GetInstance()->SetOnKeyActListener(this);
+        if (TraingOtherView::GetInstance()->GetOtherList() != nullptr)
+        {
+            TraingOtherView::GetInstance()->GetOtherList()->RequestFocus();
+        }
     }
     bool TraingOtherPresenter::OnDrag(UIView &view, const DragEvent &event)
     {
index 7529799..bc2da45 100644 (file)
@@ -127,4 +127,7 @@ void TraingOtherView::RefreshTraingOtherList(const TraingOtherItem *itemInfo) {
   TraingOtherList->SetAdapter(p_TraingOtherListAdapter);
   TraingOtherList->RefreshList();
 }
+UIList *TraingOtherView::GetOtherList() {
+  return TraingOtherList;
+}
 } // namespace OHOS
\ No newline at end of file
index 6b7c957..13644f7 100644 (file)
@@ -28,7 +28,7 @@ namespace OHOS
         virtual ~TraingRestPresenter();
 
         void OnStart() override;
-        void OnStop() override;
+        void OnResume() override;
 
         static TraingRestPresenter *GetInstance();
 
index 89ac6a6..f5fe182 100644 (file)
@@ -36,7 +36,7 @@ public:
   void OnStart() override;
 
 
-  UIList *GetList();
+  UIList *GetRestList();
   void AddToTraingRestList(const TraingRestItem &item);
   void RefreshTraingRestList(const TraingRestItem *itemInfo);
 private:
index d099db4..8105b56 100644 (file)
@@ -61,10 +61,13 @@ namespace OHOS
 
 
 
-    void TraingRestPresenter::OnStop(void)
+    void TraingRestPresenter::OnResume(void)
     {
-
-        Presenter<TraingRestView>::OnStop();
+        RootView::GetInstance()->SetOnKeyActListener(this);
+        if (TraingRestView::GetInstance()->GetRestList() != nullptr)
+        {
+            TraingRestView::GetInstance()->GetRestList()->RequestFocus();
+        }
     }
     bool TraingRestPresenter::OnDrag(UIView &view, const DragEvent &event)
     {
index bd3922b..9264463 100644 (file)
@@ -126,4 +126,7 @@ void TraingRestView::RefreshTraingRestList(const TraingRestItem *itemInfo) {
   TraingRestList->SetAdapter(p_TraingRestListAdapter);
   TraingRestList->RefreshList();
 }
+UIList *TraingRestView::GetRestList() {
+  return TraingRestList;
+}
 } // namespace OHOS
\ No newline at end of file