${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
VIEW_TRAININGDANCE, // 舞蹈运动列表
VIEW_TRAININGREST, // 休闲运动列表
VIEW_TRAININGBALL, // 球类运动列表
+ VIEW_TRAININGAQUATIC, // 水上运动列表
+
/* ---------------------------------- GPS训练 --------------------------------- */
VIEW_TRAININGGPS, // GPS训练
VIEW_TRAININGGPSSET, // GPS训练目标(时长,距离,卡路里,步数)
void InitTraingDanceSlice(void); // 舞蹈训练
void InitTraingRestSlice(void); // 休闲训练
void InitTraingBallSlice(void); // 球类训练
+ void InitTraingAquaticSlice(void); // 水上训练
void InitTraingRecordSlice(void); // 训练记录
#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"
{VIEW_TRAININGDANCE, &NativeLauncher::InitTraingDanceSlice}, // 舞蹈训练
{VIEW_TRAININGREST, &NativeLauncher::InitTraingRestSlice}, // 休闲训练
{VIEW_TRAININGBALL, &NativeLauncher::InitTraingBallSlice}, // 球类训练
+ {VIEW_TRAININGAQUATIC, &NativeLauncher::InitTraingAquaticSlice}, // 水上训练
/* -------------------------------------------------------------------------- */
#ifdef SUPPORT_ALIPAY_SEC
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);
+ }
/* -------------------------------------------------------------------------- */
// 省电模式
\r
+\r
#include "AppViewIDs.h"\r
#include "components/ui_label_ext.h"\r
#include"language/font/ui_resource_string.h"\r
}\r
else\r
{\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGLIMIT);\r
+ NativeAbility::GetInstance().ChangeSlice(preSlice);\r
}\r
}\r
UNUSED(view);\r
--- /dev/null
+/***
+ * @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
--- /dev/null
+
+#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
--- /dev/null
+/***
+ * @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
--- /dev/null
+/***
+ * @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
--- /dev/null
+/***
+ * @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
--- /dev/null
+#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
--- /dev/null
+/***
+ * @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
--- /dev/null
+
+/***
+ * @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
--- /dev/null
+/***
+ * @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;
+ }
+
+}
--- /dev/null
+#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
-/***
- * @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
-/***
- * @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
* @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
*/
-/***
- * @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"
+/***
+ * @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"
}
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);
}
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);
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);
}
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);
TraingDanceList->EnableAutoAlign(true);
TraingDanceList->SetElastic(true); // 设置回弹效果
TraingDanceList->SetMaxScrollDistance(MAX_SCR_DIS);
+ TraingDanceList->SetYScrollBarVisible(true); // 设置滑动滚动条
// 增加表冠控制
scrollView->SetRotateFactor(2);
-/***
+/***
+ * @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
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
-
#ifndef _TraingFitness_PRESENTER_H
#define _TraingFitness_PRESENTER_H
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();
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};
};
+/***
+ * @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
void OnStop() override;
UIList *GetList();
+ UIScrollView *GetScrollView();
+
void AddToTraingFitnessList(const TraingFitnessItem &item);
private:
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;
+ }
}
}
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);
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);
{
return TraingFitnessList;
}
+ UIScrollView *TraingFitnessView::GetScrollView()
+ {
+ return scrollView;
+ }
void TraingFitnessView::DeInitView()
{
// scrollView-> RemoveAll();
}
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);
TraingIceList->EnableAutoAlign(true);
TraingIceList->SetElastic(true); // 设置回弹效果
TraingIceList->SetMaxScrollDistance(MAX_SCR_DIS);
+ TraingIceList->SetYScrollBarVisible(true); // 设置滑动滚动条
// 增加表冠控制
scrollView->SetRotateFactor(2);
}\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
TraingLimitList->EnableAutoAlign(true);\r
TraingLimitList->SetElastic(true); // 设置回弹效果\r
TraingLimitList->SetMaxScrollDistance(MAX_SCR_DIS);\r
+ TraingLimitList->SetYScrollBarVisible(true); // 设置滑动滚动条\r
\r
// 增加表冠控制\r
TraingLimitList->SetRotateFactor(2);\r
}\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
#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"
}
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);
TraingRestList->EnableAutoAlign(true);
TraingRestList->SetElastic(true); // 设置回弹效果
TraingRestList->SetMaxScrollDistance(MAX_SCR_DIS);
+ TraingRestList->SetYScrollBarVisible(true); // 设置滑动滚动条
// 增加表冠控制
TraingRestList->SetRotateFactor(2);