增加水上运动并且适配多国语言
authorCaisking <3449750381@qq.com>
Fri, 29 Mar 2024 10:13:30 +0000 (18:13 +0800)
committerCaisking <3449750381@qq.com>
Fri, 29 Mar 2024 10:13:30 +0000 (18:13 +0800)
34 files changed:
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h
code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h
code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticAdapter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticItemView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticModel.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticPresenter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingListAquaticPresenter.h [deleted file]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingListAquaticView.h [deleted file]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticAdapter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticItemView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticModel.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticPresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingListAquaticPresenter.cpp [deleted file]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingListAquaticView.cpp [deleted file]
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallAdapter.h
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallItemView.h
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallPresenter.h
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallItemView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallModel.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_dance/src/TraingDanceView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessPresenter.h
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessView.h
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ice/src/TraingIceView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/src/TraingLimitView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMorePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_rest/src/TraingRestView.cpp

index 4ee9f4a..fb590c2 100644 (file)
@@ -497,6 +497,13 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_ball/src/TraingBallItemView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_ball/src/TraingBallModel.cpp
 
+    #水上训练
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_aquatic/src/TraingAquaticPresenter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_aquatic/src/TraingAquaticAdapter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_aquatic/src/TraingAquaticItemView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_aquatic/src/TraingAquaticModel.cpp
+
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_more/src/TraingMoreView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_more/src/TraingMorePresenter.cpp
 
index 5ddae06..49fd045 100644 (file)
@@ -93,6 +93,8 @@ typedef enum : uint16_t
     VIEW_TRAININGDANCE,   // 舞蹈运动列表
     VIEW_TRAININGREST,    // 休闲运动列表
     VIEW_TRAININGBALL,    // 球类运动列表
+    VIEW_TRAININGAQUATIC, // 水上运动列表
+
     /* ---------------------------------- GPS训练 --------------------------------- */
     VIEW_TRAININGGPS,     // GPS训练
     VIEW_TRAININGGPSSET,  // GPS训练目标(时长,距离,卡路里,步数)
index 73020a5..834460e 100644 (file)
@@ -86,6 +86,7 @@ namespace OHOS
         void InitTraingDanceSlice(void);   // 舞蹈训练
         void InitTraingRestSlice(void);    // 休闲训练
         void InitTraingBallSlice(void);    // 球类训练
+        void InitTraingAquaticSlice(void); // 水上训练
 
         void InitTraingRecordSlice(void); // 训练记录
 
index bbbcc3a..a11d190 100644 (file)
 #include "traing/training_list_rest/include/TraingRestView.h"
 #include "traing/training_list_ball/include/TraingBallPresenter.h"
 #include "traing/training_list_ball/include/TraingBallView.h"
+#include "traing/training_list_aquatic/include/TraingAquaticPresenter.h"
+#include "traing/training_list_aquatic/include/TraingAquaticView.h"
 /* ---------------------------------- 主界面卡片 --------------------------------- */
 #include "traing/training_card/include/TraingCardPresenter.h"
 #include "traing/training_card/include/TraingCardView.h"
@@ -307,6 +309,7 @@ namespace OHOS
         {VIEW_TRAININGDANCE, &NativeLauncher::InitTraingDanceSlice},     // 舞蹈训练
         {VIEW_TRAININGREST, &NativeLauncher::InitTraingRestSlice},       // 休闲训练
         {VIEW_TRAININGBALL, &NativeLauncher::InitTraingBallSlice},       // 球类训练
+        {VIEW_TRAININGAQUATIC, &NativeLauncher::InitTraingAquaticSlice}, // 水上训练
     /* -------------------------------------------------------------------------- */
 
 #ifdef SUPPORT_ALIPAY_SEC
@@ -1029,6 +1032,11 @@ namespace OHOS
         SliceProxy *TraingBallview = new AbilitySliceProxy<TraingBallView, TraingBallPresenter>;
         NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGBALL, TraingBallview);
     }
+    void NativeLauncher::InitTraingAquaticSlice(void)
+    {
+        SliceProxy *TraingAquaticview = new AbilitySliceProxy<TraingAquaticView, TraingAquaticPresenter>;
+        NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGAQUATIC, TraingAquaticview);
+    }
     /* -------------------------------------------------------------------------- */
 
     // 省电模式
index bfcf6bf..a4bdc23 100644 (file)
@@ -1,4 +1,5 @@
 \r
+\r
 #include "AppViewIDs.h"\r
 #include "components/ui_label_ext.h"\r
 #include"language/font/ui_resource_string.h"\r
@@ -75,7 +76,7 @@ namespace OHOS
             }\r
             else\r
             {\r
-                NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGLIMIT);\r
+                NativeAbility::GetInstance().ChangeSlice(preSlice);\r
             }\r
         }\r
         UNUSED(view);\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticAdapter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticAdapter.h
new file mode 100644 (file)
index 0000000..2d88cbc
--- /dev/null
@@ -0,0 +1,59 @@
+/*** 
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-29 17:36:30
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-29 17:47:13
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticAapter.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+#ifndef TraingAquatic_ADAPTER_H
+#define TraingAquatic_ADAPTER_H
+#include <list>
+#include <string>
+#include "components/ui_list.h"
+#include "components/abstract_adapter.h"
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "components/ui_checkbox.h"
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+
+
+// 列表的适配器
+namespace OHOS
+{
+
+    typedef struct
+    {
+        AppViewId id;
+        UIResourceTextId labelid; // 标签
+    } TraingAquaticItem;
+
+    class TraingAquaticAdapter : public AbstractAdapter
+    {
+    public:
+        explicit TraingAquaticAdapter();
+        virtual ~TraingAquaticAdapter();
+
+        void SetData(std::list<TraingAquaticItem> &data);
+
+        virtual uint16_t GetCount(void) override;
+
+        virtual UIView *GetView(UIView *inView, int16_t index) override;
+
+        virtual void AddItem(const TraingAquaticItem &item);
+
+        void SetItemClickListener(UIView::OnClickListener *itemclicklistener)
+        {
+            itemClickListener = itemclicklistener;
+        }
+
+    private:
+        std::list<TraingAquaticItem> listData;
+        UIView::OnClickListener *itemClickListener{nullptr};
+    };
+}
+
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticItemView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticItemView.h
new file mode 100644 (file)
index 0000000..3305f7f
--- /dev/null
@@ -0,0 +1,39 @@
+
+#ifndef TraingAquatic_ITEM_VIEW_H
+#define TraingAquatic_ITEM_VIEW_H
+
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "components/ui_view_group.h"
+#include "components/ui_checkbox.h"
+#include "components/ui_image_view.h"
+#include "traing/training_list_aquatic/include/TraingAquaticAdapter.h"
+#include "components/ui_label_button.h"
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "ohos_types.h"
+
+namespace OHOS
+{
+    class TraingAquaticItemView : public UIViewGroup
+    {
+    public:
+        explicit TraingAquaticItemView();
+        virtual ~TraingAquaticItemView();
+        virtual void SetItemInfo(const TraingAquaticItem itemInfo);
+        virtual void SetUpChild();
+        AppViewId GetTraingAquaticIndex();
+        UIResourceTextId GetTraingAquaticId();
+
+    private:
+        TraingAquaticItemView(const TraingAquaticItemView &);
+        UIImageView sbackground; // 背景
+        UIImageView sicon;       // 箭头
+        UILabelExt sLabel;       // 标签
+        TraingAquaticItem sItemInfo = {VIEW_INVALID, STR_EXERCISE_GENERAL};
+    };
+
+}
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticModel.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticModel.h
new file mode 100644 (file)
index 0000000..168e3cf
--- /dev/null
@@ -0,0 +1,47 @@
+/*** 
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-29 15:18:34
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-29 18:03:00
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticModel.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+#ifndef TraingAquatic_MODEL_H
+#define TraingAquatic_MODEL_H
+
+#include <cstdint>
+#include <map>
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include"language/font/ui_resource_string.h"
+#include "components/ui_label_ext.h"
+#include"language/font/ui_resource_string.h"
+#include "UiConfig.h"
+#include "TraingAquaticPresenter.h"
+#include "traing/training_list_aquatic/include/TraingAquaticAdapter.h"
+
+namespace OHOS
+{
+    class TraingAquaticModel
+    {
+    public:
+        static TraingAquaticModel &GetInstance(void);
+        void InitTraingAquaticListItem();
+        const TraingAquaticItem *GetTraingAquaticlistItems() const;
+        uint8_t GetTraingAquaticListNum() const;
+        // const std::map<TraingAquaticIndex, AppViewId> &GetTraingAquaticIdToViewId() const;
+
+    private:
+        TraingAquaticModel();
+        TraingAquaticModel(const TraingAquaticModel &);
+        TraingAquaticModel &operator=(const TraingAquaticModel &);
+        virtual ~TraingAquaticModel();
+        static const uint16_t TraingAquaticListMaxNum = 15;
+        TraingAquaticItem TraingAquatics[TraingAquaticListMaxNum] = {VIEW_INVALID, STR_EXERCISE_GENERAL};
+        // std::map<int, AppViewId> TraingAquaticIdToViewId;
+        bool btConnectStatus{false};
+    };
+}
+
+#endif
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticPresenter.h
new file mode 100644 (file)
index 0000000..9492706
--- /dev/null
@@ -0,0 +1,45 @@
+/*** 
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-19 17:37:18
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-29 15:55:10
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/include/TraingAquaticPresenter.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+#ifndef _TraingAquatic_PRESENTER_H
+#define _TraingAquatic_PRESENTER_H
+
+#include "Presenter.h"
+#include "TraingAquaticView.h"
+
+namespace OHOS
+{
+    class TraingAquaticView;
+    class TraingAquaticModel;
+    class TraingAquaticPresenter : public Presenter<TraingAquaticView>,
+                                 public UIView::OnClickListener,
+                                 public UIView::OnDragListener
+    {
+    public:
+        TraingAquaticPresenter();
+        virtual ~TraingAquaticPresenter();
+
+        void OnStart() override;
+        void OnPause() override;
+        void OnResume() override;
+        void OnStop() override;
+
+        static TraingAquaticPresenter *GetInstance();
+
+    private:
+        // 因为继承了OnClickener,所以有OnClick属性,至于参数,原函数也这样直接继承;
+        bool OnClick(UIView &view, const ClickEvent &event) override;
+        bool OnDrag(UIView &view, const DragEvent &event) override;
+        bool OnDragEnd(UIView &view, const DragEvent &event) override;
+
+        TraingAquaticModel *p_TraingAquaticModel{nullptr};
+    };
+} // namespace OHOS
+
+#endif // SLEEPDETAIL_PRESENTER_H
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticView.h
new file mode 100644 (file)
index 0000000..91e46c0
--- /dev/null
@@ -0,0 +1,61 @@
+/*** 
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-19 17:37:18
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-27 11:15:59
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticView.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+#ifndef TraingAquatic_VIEW_H
+#define TraingAquatic_VIEW_H
+
+#include "BaseView.h"
+#include "View.h"
+#include "components/ui_view_group.h"
+#include "components/ui_scroll_view.h"
+#include "components/ui_list.h"
+#include "traing/training_list_aquatic/include/TraingAquaticAdapter.h"
+#include "traing/training_list_aquatic/include/TraingAquaticModel.h"
+#include "components/ui_label_button_ext.h"
+#include "components/ui_label_ext.h"
+#include"language/font/ui_resource_string.h"
+
+namespace OHOS
+{
+    class TraingAquaticPresenter;
+    class TraingAquaticModel;
+    class TraingAquaticView : public View<TraingAquaticPresenter>, public UIViewGroup
+    {
+
+    public:
+        TraingAquaticView();
+        virtual ~TraingAquaticView();
+        static TraingAquaticView *GetInstance(void);
+
+        void OnStart() override;
+        void OnSetUpView() override;
+        void OnTearDownView() override;
+        void OnStop() override;
+
+        UIList *GetList();
+        void AddToTraingAquaticList(const TraingAquaticItem &item);
+
+    private:
+        void InitView(void);
+        void DeInitView(void);
+        void PreLoad(void);
+
+    private:
+        UIScrollView *scrollView = nullptr;
+        UILabelExt *title{nullptr};
+        TraingAquaticAdapter *p_TraingAquaticListAdapter{nullptr};
+        UIList *TraingAquaticList = nullptr;
+        UIView::OnDragListener *draglistener{nullptr};
+
+        TraingAquaticPresenter *g_TraingAquaticPresenter{nullptr};
+        TraingAquaticModel *g_TraingAquaticModel{nullptr};
+        bool viewInitStatus{false};
+    };
+} // namespace OHOS
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingListAquaticPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingListAquaticPresenter.h
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingListAquaticView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingListAquaticView.h
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticAdapter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticAdapter.cpp
new file mode 100644 (file)
index 0000000..2970c18
--- /dev/null
@@ -0,0 +1,87 @@
+#include "traing/training_list_aquatic/include/TraingAquaticAdapter.h"
+#include "traing/training_list_aquatic/include/TraingAquaticModel.h"
+#include "traing/training_list_aquatic/include/TraingAquaticItemView.h"
+
+#include "wearable_log.h"
+
+namespace OHOS
+{
+    TraingAquaticAdapter::TraingAquaticAdapter() {}
+
+    TraingAquaticAdapter::~TraingAquaticAdapter()
+    {
+        listData.clear();
+    }
+
+    uint16_t TraingAquaticAdapter::GetCount(void)
+    {
+        return listData.size();
+    }
+
+    void TraingAquaticAdapter::SetData(std::list<TraingAquaticItem> &data)
+    {
+        if (!listData.empty())
+        {
+            listData.clear();
+        }
+        std::list<TraingAquaticItem>::iterator it;
+        for (it = data.begin(); it != data.end(); it++)
+        {
+            listData.push_back(*it);
+        }
+    }
+
+    /// @brief 为列表的每一项创建一个视图
+    /// @param inView 一个指向已存在的视图对象的指
+    /// @param index 要创建的视图在列表中的索引l。
+    /// @return 返回该视图对象
+    UIView *TraingAquaticAdapter::GetView(UIView *inView, int16_t index)
+    {
+
+        // 1.先检查列表数据是否为空,若为空则返回空指针
+        if (listData.empty())
+        {
+            return nullptr;
+        }
+        // 2.接着检查索引是否小于0,若小于0则返回空指针
+        if (index < 0)
+        {
+            return nullptr;
+        }
+        // 3.检查是否超出列表数据大小,若超出则返回空指针
+        size_t uindex = index;
+        if (uindex >= listData.size())
+        {
+            return nullptr;
+        }
+        // 4.通过迭代器访问列表中指定索引位置的元素,将其赋值给itemData变量
+        std::list<TraingAquaticItem>::iterator it = listData.begin();
+        for (int i = 0; i < index; i++)
+        {
+            it++;
+        }
+        TraingAquaticItem itemData = *it;
+        TraingAquaticItemView *item = nullptr;
+        /*
+            5.根据传入的inView参数是否已经存在一个视图对象,
+            若为空则创建一个新的MessageItemView对象,
+           否则将inView转换成MessageItemView类型的指针
+        */
+        if (inView == nullptr)
+        {
+            item = new TraingAquaticItemView();
+        }
+        else
+        {
+            item = static_cast<TraingAquaticItemView *>(inView);
+        }
+        item->SetItemInfo(itemData);
+        item->SetOnClickListener(itemClickListener);
+        return item;
+    }
+
+    void TraingAquaticAdapter::AddItem(const TraingAquaticItem &item)
+    {
+        listData.push_back(item);
+    }
+} // namespace OHOS
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticItemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticItemView.cpp
new file mode 100644 (file)
index 0000000..ec09622
--- /dev/null
@@ -0,0 +1,73 @@
+/*** 
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-29 17:42:13
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-29 17:52:02
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticItem.cpp
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+
+#include "traing/training_list_aquatic/include/TraingAquaticItemView.h"
+#include "traing/include/TraingModel.h"
+#include "traing/Training_UiConfig.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "UiConfig.h"
+namespace OHOS
+{
+
+    TraingAquaticItemView::TraingAquaticItemView()
+    {
+        SetPosition(0, 0, 380, 120); // 每一个itemview宽高要配置好,因为加到list都是以这个视图为基准
+        SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+        SetStyle(STYLE_BACKGROUND_OPA, 255);
+        SetTouchable(true);
+        SetUpChild();
+        Add(&sbackground);
+        Add(&sicon);
+        Add(&sLabel);
+    }
+
+    TraingAquaticItemView::~TraingAquaticItemView()
+    {
+        Remove(&sbackground);
+        Remove(&sicon);
+        Remove(&sLabel);
+    }
+
+    /// @brief 设置item的信息
+    /// @param itemInfo
+    void TraingAquaticItemView::SetItemInfo(const TraingAquaticItem itemInfo)
+    {
+        sItemInfo = itemInfo;
+        sLabel.SetTextId(itemInfo.labelid);
+    }
+
+    /// @brief 设置每一个itemview上的组件
+    void TraingAquaticItemView::SetUpChild()
+    {
+        sbackground.SetSrc(PNG_SETTING_BACKGROUND_IMAGE);
+
+        sicon.SetPosition(330, 40);
+        sicon.SetSrc(ICON_IMAGE);
+        sicon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+
+        sLabel.SetPosition(50, 10, 300, 80);
+        sLabel.SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
+        sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+        sLabel.SetRollSpeed(0);
+        sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+    }
+
+    /// @brief 获取list的中每个组件的在list的下标
+    /// @return 返回下标
+    AppViewId TraingAquaticItemView::GetTraingAquaticIndex()
+    {
+        return sItemInfo.id;
+    }
+    UIResourceTextId TraingAquaticItemView::GetTraingAquaticId()
+    {
+        return sItemInfo.labelid;
+    }
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticModel.cpp
new file mode 100644 (file)
index 0000000..d47b9e9
--- /dev/null
@@ -0,0 +1,70 @@
+
+/***
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-29 15:51:45
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-29 17:56:44
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticModel.cpp
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+#include "traing/training_list_aquatic/include/TraingAquaticModel.h"
+#include "common/image_cache_manager.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "UiConfig.h"
+#include "ui_resource_image.h"
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+namespace OHOS
+{
+
+    TraingAquaticModel::TraingAquaticModel() {}
+
+    TraingAquaticModel::~TraingAquaticModel() {}
+
+    TraingAquaticModel &TraingAquaticModel::GetInstance()
+    {
+        static TraingAquaticModel instance;
+        return instance;
+    }
+
+    void TraingAquaticModel::InitTraingAquaticListItem()
+    {
+        TraingAquaticItem defaultItems[] = {
+            {VIEW_TRAININGNOMAL, STR_WATER_ACTIVITIES},
+            {VIEW_TRAININGNOMAL, STR_WATER_SAILING},
+            {VIEW_TRAININGNOMAL, STR_WATER_SURFING},
+            {VIEW_TRAININGNOMAL, STR_WATER_WHITEWATERRAFTING},
+            {VIEW_TRAININGNOMAL, STR_WATER_CANOEING},
+            {VIEW_TRAININGNOMAL, STR_WATER_KAYAKING},
+            {VIEW_TRAININGNOMAL, STR_WATER_ROWING},
+            {VIEW_TRAININGNOMAL, STR_WATER_MOTORBOAT},
+            {VIEW_TRAININGNOMAL, STR_WATER_SUP},
+            {VIEW_TRAININGNOMAL, STR_WATER_SCUBADIVING},
+            {VIEW_TRAININGNOMAL, STR_WATER_DIVING},
+            {VIEW_TRAININGNOMAL, STR_WATER_KITESURFING},
+            {VIEW_TRAININGNOMAL, STR_WATER_WAKEBOARDING},
+            {VIEW_TRAININGNOMAL, STR_WATER_POLO},
+            {VIEW_TRAININGNOMAL, STR_WATER_WINDSURFING},
+            {VIEW_TRAININGNOMAL, STR_WATER_DRIFTING},
+            {VIEW_TRAININGNOMAL, STR_WATER_FITNESS},
+            {VIEW_TRAININGNOMAL, STR_WATER_SPORTS}};
+
+        for (int i = 0; i < TraingAquaticListMaxNum; i++)
+        {
+            TraingAquatics[i] = defaultItems[i];
+        }
+    }
+
+    const TraingAquaticItem *TraingAquaticModel::GetTraingAquaticlistItems() const
+    {
+        return TraingAquatics;
+    }
+    uint8_t TraingAquaticModel::GetTraingAquaticListNum() const
+    {
+        return TraingAquaticListMaxNum;
+    }
+
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticPresenter.cpp
new file mode 100644 (file)
index 0000000..a92487a
--- /dev/null
@@ -0,0 +1,118 @@
+/***
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-19 17:37:19
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-26 19:51:06
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticPresenter.cpp
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+/***
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-19 17:37:19
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-26 14:23:32
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/src/TraingAquaticPresenter.cpp
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "NativeAbility.h"
+
+#include <iostream>
+#include <chrono>
+#include <thread>
+#include "traing/training_list_aquatic/include/TraingAquaticItemView.h"
+#include "traing/training_list_aquatic/include/TraingAquaticPresenter.h"
+#include "traing/training_list_aquatic/include/TraingAquaticView.h"
+#include "traing/include/TraingModel.h"
+// #include "TraingAquaticView.h"
+
+namespace OHOS
+{
+    extern const char *Aquatic_buttons[];
+    extern char *Aquatic_text[];
+
+    // 当前Presenter属性实例化的内存指针
+    static TraingAquaticPresenter *g_pTraingAquaticPresenter = nullptr;
+
+    TraingAquaticPresenter::TraingAquaticPresenter()
+    {
+        p_TraingAquaticModel = &TraingAquaticModel::GetInstance();
+        g_pTraingAquaticPresenter = this;
+    }
+
+    TraingAquaticPresenter::~TraingAquaticPresenter()
+    {
+
+        g_pTraingAquaticPresenter = nullptr;
+    }
+
+    TraingAquaticPresenter *TraingAquaticPresenter::GetInstance()
+    {
+
+        return g_pTraingAquaticPresenter;
+    }
+
+    void TraingAquaticPresenter::OnStart()
+    {
+        p_TraingAquaticModel->InitTraingAquaticListItem();
+        Presenter<TraingAquaticView>::OnStart();
+    }
+
+    void TraingAquaticPresenter::OnPause(void)
+    {
+        Presenter<TraingAquaticView>::OnPause();
+    }
+
+    void TraingAquaticPresenter::OnResume(void)
+    {
+        if (view_ == nullptr)
+        {
+            return;
+        }
+        const TraingAquaticItem *itemInfo = p_TraingAquaticModel->GetTraingAquaticlistItems();
+        for (int i = 0; i < p_TraingAquaticModel->GetTraingAquaticListNum(); i++)
+        {
+            view_->AddToTraingAquaticList(itemInfo[i]);
+        }
+        Presenter<TraingAquaticView>::OnResume();
+    }
+
+    void TraingAquaticPresenter::OnStop(void)
+    {
+
+        Presenter<TraingAquaticView>::OnStop();
+    }
+    bool TraingAquaticPresenter::OnDrag(UIView &view, const DragEvent &event)
+    {
+        return true;
+    }
+    bool TraingAquaticPresenter::OnDragEnd(UIView &view, const DragEvent &event)
+    {
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
+        {
+            NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGMORE);
+        }
+        UNUSED(view);
+        return true;
+    }
+
+    bool TraingAquaticPresenter::OnClick(UIView &view, const ClickEvent &event)
+    {
+        UNUSED(event);
+        TraingAquaticItemView *itemView = static_cast<TraingAquaticItemView *>(&view);
+        AppViewId viewId = itemView->GetTraingAquaticIndex();
+        UIResourceTextId sportid = itemView->GetTraingAquaticId();
+        TraingModel::GetInstance()->SetSportEvent(sportid);
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistPresenter::OnClick viewid = %d\n", viewId);
+        if (viewId < VIEW_MAX_INTER_APP)
+        {
+            NativeAbility::GetInstance().ChangeSlice(viewId);
+            return true;
+        }
+        return false;
+    }
+
+}
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp
new file mode 100644 (file)
index 0000000..8d24709
--- /dev/null
@@ -0,0 +1,154 @@
+#include "traing/training_list_aquatic/include/TraingAquaticView.h"
+#include "traing/training_list_aquatic/include/TraingAquaticPresenter.h"
+#include "traing/include/TraingModel.h"
+#include "traing/Training_UiConfig.h"
+
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "UiConfig.h"
+#include "wearable_log.h"
+
+namespace OHOS
+{
+    static constexpr uint8_t NUM_2 = 2;
+    static TraingAquaticView *g_pTraingAquaticView{nullptr};
+    /* --------------------------------- List --------------------------------- */
+    static constexpr int16_t Aquatic_LIST_POSITION_X = 43;
+    static constexpr int16_t Aquatic_LIST_POSITION_Y = 120;
+    static constexpr int16_t Aquatic_SCROLLBLANKSIZE = 35; // 设置此滚动视图的空白大小。
+    static constexpr int16 MAX_SCR_DIS = 1000;
+    static constexpr int16 LIST_POS = 20;
+    static constexpr int16 SNUM_2 = 2;
+
+    TraingAquaticView::TraingAquaticView()
+    {
+        g_pTraingAquaticView = this;
+    }
+
+    TraingAquaticView::~TraingAquaticView()
+    {
+        if (viewInitStatus == true)
+        {
+            DeInitView();
+        }
+        g_pTraingAquaticView = nullptr;
+    }
+
+    TraingAquaticView *TraingAquaticView::GetInstance()
+    {
+        return g_pTraingAquaticView;
+    }
+    /// @param item
+    void TraingAquaticView::AddToTraingAquaticList(const TraingAquaticItem &item)
+    {
+        p_TraingAquaticListAdapter->AddItem(item);
+    }
+    void TraingAquaticView::InitView()
+    {
+        if (scrollView == nullptr)
+        {
+            scrollView = new UIScrollView();
+        }
+        scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+        // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+        scrollView->SetScrollBlankSize(20);
+        // scrollView->SetReboundSize(100);
+        scrollView->SetTouchable(true);
+        scrollView->SetDraggable(true);
+        scrollView->SetDirection(1);
+        draglistener = static_cast<UIView::OnDragListener *>(TraingAquaticPresenter::GetInstance());
+        scrollView->SetOnDragListener(draglistener);
+
+        /* -------------------------------------------------------------------------- */
+        // 初始化Lable
+        TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "极限运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
+        scrollView->Add(title);
+        // UIList 的适配器
+        p_TraingAquaticListAdapter = new TraingAquaticAdapter();
+        p_TraingAquaticListAdapter->SetItemClickListener(presenter_);
+        if (TraingAquaticList == nullptr)
+        {
+            TraingAquaticList = new UIList();
+        }
+        TraingAquaticList->SetPosition(Aquatic_LIST_POSITION_X, Aquatic_LIST_POSITION_Y);
+        TraingAquaticList->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+        // TraingAquaticList->SetScrollBlankSize(Aquatic_SCROLLBLANKSIZE);
+        TraingAquaticList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position
+        TraingAquaticList->SetDraggable(true);
+        TraingAquaticList->SetThrowDrag(false);
+        TraingAquaticList->EnableAutoAlign(true);
+        TraingAquaticList->SetElastic(true); // 设置回弹效果
+        TraingAquaticList->SetMaxScrollDistance(MAX_SCR_DIS);
+        TraingAquaticList->SetYScrollBarVisible(true); // 设置滑动滚动条
+
+        // 增加表冠控制
+        TraingAquaticList->SetRotateFactor(2);
+        TraingAquaticList->RequestFocus();
+    }
+    UIList *TraingAquaticView::GetList()
+    {
+        return TraingAquaticList;
+    }
+    void TraingAquaticView::DeInitView()
+    {
+        // scrollView-> RemoveAll();
+        RemoveAll();
+        delete title;
+        title = nullptr;
+
+        delete TraingAquaticList;
+        TraingAquaticList = nullptr;
+
+        delete scrollView;
+        scrollView = nullptr;
+
+        delete draglistener;
+        draglistener = nullptr;
+    }
+
+    void TraingAquaticView::PreLoad(void)
+    {
+        if (!viewInitStatus)
+        {
+            InitView();
+            viewInitStatus = true;
+        }
+    }
+
+    /// @brief 页面启动时需要执行的代码逻辑
+    void TraingAquaticView::OnStart()
+    {
+        View<TraingAquaticPresenter>::OnStart();
+        BaseView::RootView(Color::Black().full);
+        PreLoad();
+    }
+
+    /// @brief 创建页面的视图。
+    void TraingAquaticView::OnSetUpView()
+    {
+        View<TraingAquaticPresenter>::OnSetUpView();
+        scrollView->Add(title);
+        scrollView->Add(TraingAquaticList);
+        scrollView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
+        RootView::GetInstance()->Add(scrollView);
+        TraingAquaticList->SetAdapter(p_TraingAquaticListAdapter);
+        // TraingAquaticList->RefreshList(); // 刷新列表
+        Draw();
+    }
+
+    /// @brief 销毁页面的视图。
+    void TraingAquaticView::OnTearDownView()
+    {
+        View<TraingAquaticPresenter>::OnTearDownView();
+        return;
+    }
+
+    /// @brief 页面结束时需要执行的销毁逻辑。
+    void TraingAquaticView::OnStop()
+    {
+        View<TraingAquaticPresenter>::OnStop();
+        RootView::GetInstance()->RemoveAll();
+        RootView::GetInstance()->ClearFocus();
+        return;
+    }
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingListAquaticPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingListAquaticPresenter.cpp
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingListAquaticView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingListAquaticView.cpp
deleted file mode 100644 (file)
index e69de29..0000000
index ed7cbac..ab23cff 100644 (file)
@@ -1,11 +1,3 @@
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-26 17:04:41
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-29 11:16:42
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_Ball/include/TraingBallAdapter.h
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
 
 #ifndef TraingBall_ADAPTER_H
 #define TraingBall_ADAPTER_H
index 6290492..28ca204 100644 (file)
@@ -1,19 +1,3 @@
-/*** 
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-26 17:05:18
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-29 14:30:24
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_Ball/include/TraingBallItemView.h
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-26 17:05:18
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-26 18:24:58
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_Ball/include/TraingBallItemView.h
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
 
 #ifndef TraingBall_ITEM_VIEW_H
 #define TraingBall_ITEM_VIEW_H
index 417e7b4..c9716be 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: Caisking 3449750381@qq.com
  * @Date: 2024-03-19 17:37:18
  * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-29 15:55:10
+ * @LastEditTime: 2024-03-29 17:49:35
  * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/include/TraingBallPresenter.h
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
index 2d765cf..5c64a9a 100644 (file)
@@ -1,19 +1,4 @@
-/*** 
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-29 15:19:06
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-29 15:55:49
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallItemView.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-26 17:05:30
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-29 11:18:05
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallItemView.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%A
- */
+
 
 #include "traing/training_list_ball/include/TraingBallItemView.h"
 #include "traing/include/TraingModel.h"
index 43a8f33..7b651bf 100644 (file)
@@ -1,3 +1,11 @@
+/*** 
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-29 15:51:45
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-29 17:56:44
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallModel.cpp
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
 
 
 #include "traing/training_list_ball/include/TraingBallModel.h"
index 67053bd..0fc5b3b 100644 (file)
@@ -51,14 +51,14 @@ namespace OHOS
         }
         scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
         // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
-        // scrollView->SetScrollBlankSize(20);
+        scrollView->SetScrollBlankSize(20);
         // scrollView->SetReboundSize(100);
         scrollView->SetTouchable(true);
         scrollView->SetDraggable(true);
         scrollView->SetDirection(1);
         draglistener = static_cast<UIView::OnDragListener *>(TraingBallPresenter::GetInstance());
         scrollView->SetOnDragListener(draglistener);
-        scrollView->SetYScrollBarVisible(true); // 设置滑动滚动条
+
         /* -------------------------------------------------------------------------- */
         // 初始化Lable
         TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "极限运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
@@ -72,13 +72,14 @@ namespace OHOS
         }
         TraingBallList->SetPosition(Ball_LIST_POSITION_X, Ball_LIST_POSITION_Y);
         TraingBallList->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
-        TraingBallList->SetScrollBlankSize(Ball_SCROLLBLANKSIZE);
+        // TraingBallList->SetScrollBlankSize(Ball_SCROLLBLANKSIZE);
         TraingBallList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position
         TraingBallList->SetDraggable(true);
         TraingBallList->SetThrowDrag(false);
         TraingBallList->EnableAutoAlign(true);
         TraingBallList->SetElastic(true); // 设置回弹效果
         TraingBallList->SetMaxScrollDistance(MAX_SCR_DIS);
+        TraingBallList->SetYScrollBarVisible(true); // 设置滑动滚动条
 
         // 增加表冠控制
         TraingBallList->SetRotateFactor(2);
@@ -126,7 +127,7 @@ namespace OHOS
     void TraingBallView::OnSetUpView()
     {
         View<TraingBallPresenter>::OnSetUpView();
-        // scrollView->Add(title);
+        scrollView->Add(title);
         scrollView->Add(TraingBallList);
         scrollView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
         RootView::GetInstance()->Add(scrollView);
index 65e5513..1acc2b9 100644 (file)
@@ -51,14 +51,14 @@ namespace OHOS
         }
         scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
         // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
-        // scrollView->SetScrollBlankSize(52);
+        scrollView->SetScrollBlankSize(52);
         // scrollView->SetReboundSize(100);
         scrollView->SetTouchable(true);
         scrollView->SetDraggable(true);
         scrollView->SetDirection(1);
         draglistener = static_cast<UIView::OnDragListener *>(TraingDancePresenter::GetInstance());
         scrollView->SetOnDragListener(draglistener);
-        scrollView->SetYScrollBarVisible(true); // 设置滑动滚动条
+
         /* -------------------------------------------------------------------------- */
         // 初始化Lable
         TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "舞蹈运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
@@ -79,6 +79,7 @@ namespace OHOS
         TraingDanceList->EnableAutoAlign(true);
         TraingDanceList->SetElastic(true); // 设置回弹效果
         TraingDanceList->SetMaxScrollDistance(MAX_SCR_DIS);
+        TraingDanceList->SetYScrollBarVisible(true); // 设置滑动滚动条
 
         // 增加表冠控制
         scrollView->SetRotateFactor(2);
index 2d4f902..63bed01 100644 (file)
@@ -1,4 +1,12 @@
-/*** 
+/***
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-26 09:40:03
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-29 17:02:30
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessPresenter.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+/***
  * @Author: Caisking 3449750381@qq.com
  * @Date: 2024-03-26 09:44:11
  * @LastEditors: Caisking 3449750381@qq.com
@@ -7,7 +15,6 @@
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
 
-
 #ifndef _TraingFitness_PRESENTER_H
 #define _TraingFitness_PRESENTER_H
 
@@ -19,8 +26,9 @@ namespace OHOS
     class TraingFitnessView;
     class TraingFitnessModel;
     class TraingFitnessPresenter : public Presenter<TraingFitnessView>,
-                                 public UIView::OnClickListener,
-                                 public UIView::OnDragListener
+                                   public UIView::OnClickListener,
+                                   public UIView::OnDragListener,
+                                   public UIView::OnTouchListener
     {
     public:
         TraingFitnessPresenter();
@@ -38,6 +46,7 @@ namespace OHOS
         bool OnClick(UIView &view, const ClickEvent &event) override;
         bool OnDrag(UIView &view, const DragEvent &event) override;
         bool OnDragEnd(UIView &view, const DragEvent &event) override;
+        bool OnPress(UIView &view, const PressEvent &event) override;
 
         TraingFitnessModel *p_TraingFitnessModel{nullptr};
     };
index 3c54bda..8231bd2 100644 (file)
@@ -1,3 +1,11 @@
+/*** 
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-26 09:39:13
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-29 17:07:10
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessView.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
 
 #ifndef TraingFitness_VIEW_H
 #define TraingFitness_VIEW_H
@@ -31,6 +39,8 @@ namespace OHOS
         void OnStop() override;
 
         UIList *GetList();
+        UIScrollView *GetScrollView();
+
         void AddToTraingFitnessList(const TraingFitnessItem &item);
 
     private:
index 3cf31fe..70ecae1 100644 (file)
@@ -110,4 +110,18 @@ namespace OHOS
         return false;
     }
 
+    bool TraingFitnessPresenter::OnPress(UIView &view, const PressEvent &event)
+    {
+        if (&view == TraingFitnessView::GetInstance()->GetScrollView())
+        {
+            TraingFitnessView::GetInstance()->GetScrollView()->RequestFocus();
+            return true;
+        }
+        else if (&view == TraingFitnessView::GetInstance()->GetList())
+        {
+            TraingFitnessView::GetInstance()->GetList()->RequestFocus();
+            return true;
+        }
+        return false;
+    }
 }
index 6301df8..87a3639 100644 (file)
@@ -49,14 +49,14 @@ namespace OHOS
         }
         scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
         // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
-        // scrollView->SetScrollBlankSize(52);
+        scrollView->SetScrollBlankSize(52);
         // scrollView->SetReboundSize(100);
         scrollView->SetTouchable(true);
         scrollView->SetDraggable(true);
         scrollView->SetDirection(1);
         draglistener = static_cast<UIView::OnDragListener *>(TraingFitnessPresenter::GetInstance());
         scrollView->SetOnDragListener(draglistener);
-        scrollView->SetYScrollBarVisible(true); // 设置滑动滚动条
+
         /* -------------------------------------------------------------------------- */
         // 初始化Lable
         TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "健身运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
@@ -71,13 +71,14 @@ namespace OHOS
         TraingFitnessList->SetPosition(Fitness_LIST_POSITION_X, Fitness_LIST_POSITION_Y);
         TraingFitnessList->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
         TraingFitnessList->SetScrollBlankSize(Fitness_SCROLLBLANKSIZE);
-        // TraingFitnessList->SetReboundSize(100);
+        TraingFitnessList->SetReboundSize(50);
         TraingFitnessList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position
         TraingFitnessList->SetDraggable(true);
         TraingFitnessList->SetThrowDrag(false);
         TraingFitnessList->EnableAutoAlign(true);
         TraingFitnessList->SetElastic(true); // 设置回弹效果
         TraingFitnessList->SetMaxScrollDistance(MAX_SCR_DIS);
+        TraingFitnessList->SetYScrollBarVisible(true); // 设置滑动滚动条
 
         // 增加表冠控制
         TraingFitnessList->SetRotateFactor(2);
@@ -87,6 +88,10 @@ namespace OHOS
     {
         return TraingFitnessList;
     }
+    UIScrollView *TraingFitnessView::GetScrollView()
+    {
+        return scrollView;
+    }
     void TraingFitnessView::DeInitView()
     {
         // scrollView-> RemoveAll();
index b7fded6..53a815a 100644 (file)
@@ -59,14 +59,14 @@ namespace OHOS
         }
         scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
         // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
-        // scrollView->SetScrollBlankSize(52);
+        scrollView->SetScrollBlankSize(52);
         // scrollView->SetReboundSize(100);
         scrollView->SetTouchable(true);
         scrollView->SetDraggable(true);
         scrollView->SetDirection(1);
         draglistener = static_cast<UIView::OnDragListener *>(TraingIcePresenter::GetInstance());
         scrollView->SetOnDragListener(draglistener);
-        scrollView->SetYScrollBarVisible(true); // 设置滑动滚动条
+
         /* -------------------------------------------------------------------------- */
         // 初始化Lable
         TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "冰上运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
@@ -87,6 +87,7 @@ namespace OHOS
         TraingIceList->EnableAutoAlign(true);
         TraingIceList->SetElastic(true); // 设置回弹效果
         TraingIceList->SetMaxScrollDistance(MAX_SCR_DIS);
+        TraingIceList->SetYScrollBarVisible(true); // 设置滑动滚动条
 
         // 增加表冠控制
         scrollView->SetRotateFactor(2);
index d21441d..e76e13f 100644 (file)
@@ -51,14 +51,14 @@ namespace OHOS
         }\r
         scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
         // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        // scrollView->SetScrollBlankSize(52);\r
+         scrollView->SetScrollBlankSize(52);\r
         // scrollView->SetReboundSize(100);\r
         scrollView->SetTouchable(true);\r
         scrollView->SetDraggable(true);\r
         scrollView->SetDirection(1);\r
         draglistener = static_cast<UIView::OnDragListener *>(TraingLimitPresenter::GetInstance());\r
         scrollView->SetOnDragListener(draglistener);\r
-        scrollView->SetYScrollBarVisible(true); // 设置滑动滚动条\r
+\r
         /* -------------------------------------------------------------------------- */\r
         // 初始化Lable\r
         TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "极限运动", DEFAULT_VECTOR_FONT_FILENAME, 30);\r
@@ -79,6 +79,7 @@ namespace OHOS
         TraingLimitList->EnableAutoAlign(true);\r
         TraingLimitList->SetElastic(true); // 设置回弹效果\r
         TraingLimitList->SetMaxScrollDistance(MAX_SCR_DIS);\r
+        TraingLimitList->SetYScrollBarVisible(true); // 设置滑动滚动条\r
 \r
         // 增加表冠控制\r
         TraingLimitList->SetRotateFactor(2);\r
index 54d3294..c12be8f 100644 (file)
@@ -117,7 +117,7 @@ namespace OHOS
         }\r
         if (strcmp(view.GetViewId(), BUTTON_SWIMMING) == 0)\r
         {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGLIMIT);\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGAQUATIC);\r
         }\r
         return true;\r
     }\r
index 5e9a626..78c646f 100644 (file)
@@ -4,7 +4,7 @@
 #include "traing/Training_UiConfig.h"
 
 #include "components/ui_label_ext.h"
-#include"language/font/ui_resource_string.h"
+#include "language/font/ui_resource_string.h"
 #include "UiConfig.h"
 #include "wearable_log.h"
 
@@ -51,14 +51,14 @@ namespace OHOS
         }
         scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
         // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
-        //scrollView->SetScrollBlankSize(52);
+        // scrollView->SetScrollBlankSize(52);
         // scrollView->SetReboundSize(100);
         scrollView->SetTouchable(true);
         scrollView->SetDraggable(true);
         scrollView->SetDirection(1);
         draglistener = static_cast<UIView::OnDragListener *>(TraingRestPresenter::GetInstance());
         scrollView->SetOnDragListener(draglistener);
-        scrollView->SetYScrollBarVisible(true); // 设置滑动滚动条
+
         /* -------------------------------------------------------------------------- */
         // 初始化Lable
         TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "极限运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
@@ -79,6 +79,7 @@ namespace OHOS
         TraingRestList->EnableAutoAlign(true);
         TraingRestList->SetElastic(true); // 设置回弹效果
         TraingRestList->SetMaxScrollDistance(MAX_SCR_DIS);
+        TraingRestList->SetYScrollBarVisible(true); // 设置滑动滚动条
 
         // 增加表冠控制
         TraingRestList->SetRotateFactor(2);