-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-26 17:05:18
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-29 15:20:12
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/include/TraingLimitItemView.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_limit/include/TraingLimitItemView.h
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
+
#ifndef TraingLimit_ITEM_VIEW_H
#define TraingLimit_ITEM_VIEW_H
TraingLimitModel(const TraingLimitModel &);
TraingLimitModel &operator=(const TraingLimitModel &);
virtual ~TraingLimitModel();
- static const uint16_t TraingLimitListMaxNum = 10;
+ static const uint16_t TraingLimitListMaxNum = 12;
TraingLimitItem TraingLimits[TraingLimitListMaxNum] = {VIEW_INVALID, STR_EXERCISE_GENERAL};
// std::map<int, AppViewId> TraingLimitIdToViewId;
bool btConnectStatus{false};
-/***
+/***
* @Author: Caisking 3449750381@qq.com
* @Date: 2024-03-19 17:37:18
* @LastEditors: Caisking 3449750381@qq.com
* @LastEditTime: 2024-03-29 15:21:13
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/include/TraingLimitView.h
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ * @FilePath:
+ * /sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/include/TraingLimitView.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置
+ * 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
#ifndef TraingLimit_VIEW_H
#include "BaseView.h"
#include "View.h"
-#include "components/ui_view_group.h"
-#include "components/ui_scroll_view.h"
+#include "components/ui_label_button_ext.h"
+#include "components/ui_label_ext.h"
#include "components/ui_list.h"
+#include "components/ui_scroll_view.h"
+#include "components/ui_view_group.h"
#include "traing/training_list_limit/include/TraingLimitAdapter.h"
#include "traing/training_list_limit/include/TraingLimitModel.h"
-#include "components/ui_label_button_ext.h"
-#include "components/ui_label_ext.h"
-#include"ui_resource_string.h"
-
-namespace OHOS
-{
- class TraingLimitPresenter;
- class TraingLimitModel;
- class TraingLimitView : public View<TraingLimitPresenter>, public UIViewGroup
- {
-
- public:
- TraingLimitView();
- virtual ~TraingLimitView();
- static TraingLimitView *GetInstance(void);
-
- void OnStart() override;
- void OnSetUpView() override;
- void OnTearDownView() override;
- void OnStop() override;
-
- UIList *GetList();
- void AddToTraingLimitList(const TraingLimitItem &item);
-
- private:
- void InitView(void);
- void DeInitView(void);
- void PreLoad(void);
-
- private:
- UIScrollView *scrollView = nullptr;
- UILabelExt *title{nullptr};
- TraingLimitAdapter *p_TraingLimitListAdapter{nullptr};
- UIList *TraingLimitList = nullptr;
- UIView::OnDragListener *draglistener{nullptr};
-
- TraingLimitPresenter *g_TraingLimitPresenter{nullptr};
- TraingLimitModel *g_TraingLimitModel{nullptr};
- bool viewInitStatus{false};
- };
+#include "ui_resource_string.h"
+
+namespace OHOS {
+class TraingLimitPresenter;
+class TraingLimitModel;
+class TraingLimitView : public View<TraingLimitPresenter>, public UIViewGroup {
+
+public:
+ TraingLimitView();
+ virtual ~TraingLimitView();
+ static TraingLimitView *GetInstance(void);
+
+ void OnStart() override;
+ void OnSetUpView() override;
+ void OnTearDownView() override;
+ void OnStop() override;
+
+ UIList *GetList();
+ void AddToTraingLimitList(const TraingLimitItem &item);
+
+private:
+ void InitView(void);
+ void DeInitView(void);
+ void InitList();
+ void InitScrollView();
+ void SetKeyActListener(void);
+ void PreLoad(void);
+
+private:
+ UIScrollView *scrollView = nullptr;
+ TraingLimitAdapter *p_TraingLimitListAdapter{nullptr};
+ UIList *TraingLimitList = nullptr;
+ bool viewInitStatus{false};
+};
} // namespace OHOS
#endif
\ No newline at end of file
-/***
- * @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_limit/src/TraingLimitItemView.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%A
- */
-
#include "traing/training_list_limit/include/TraingLimitItemView.h"
+#include "UiConfig.h"
+#include "traing/Training_UiConfig.h"
#include "traing/include/TraingModel.h"
#include "uicomponents/UIComponents.h"
-#include "traing/Training_UiConfig.h"
-#include "components/ui_label_ext.h"
-#include "ui_resource_string.h"
-#include "UiConfig.h"
-namespace OHOS
-{
-
- TraingLimitItemView::TraingLimitItemView()
- {
- 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);
- }
-
- TraingLimitItemView::~TraingLimitItemView()
- {
- Remove(&sbackground);
- Remove(&sicon);
- Remove(&sLabel);
- }
-
- /// @brief 设置item的信息
- /// @param itemInfo
- void TraingLimitItemView::SetItemInfo(const TraingLimitItem itemInfo)
- {
- sItemInfo = itemInfo;
- sLabel.SetTextId(itemInfo.labelid);
- }
-
- /// @brief 设置每一个itemview上的组件
- void TraingLimitItemView::SetUpChild()
- {
- sbackground.SetSrc(PNG_SETTING_BACKGROUND_IMAGE);
-
- sicon.SetPosition(330, 40);
- sicon.SetSrc(ICON_IMAGE);
- sicon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
-
- sLabel.SetPosition(40, 33, 240, 35);
- sLabel.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
- sLabel.SetRollSpeed(70);
-//sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-
- sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
- }
-
- /// @brief 获取list的中每个组件的在list的下标
- /// @return 返回下标
- AppViewId TraingLimitItemView::GetTraingLimitIndex()
- {
- return sItemInfo.id;
- }
- UIResourceTextId TraingLimitItemView::GetTraingLimitId()
- {
- return sItemInfo.labelid;
- }
-}
\ No newline at end of file
+
+namespace OHOS {
+
+TraingLimitItemView::TraingLimitItemView() {
+ 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);
+}
+
+TraingLimitItemView::~TraingLimitItemView() {
+ Remove(&sbackground);
+ Remove(&sicon);
+ Remove(&sLabel);
+}
+
+/// @brief 设置item的信息
+/// @param itemInfo
+void TraingLimitItemView::SetItemInfo(const TraingLimitItem itemInfo) {
+ sItemInfo = itemInfo;
+
+ // 先设置所有视图的可见性
+ bool isVisible = false;
+ bool label_isVisible = false;
+ uint32_t color = Color::White().full;
+ SetTouchable(false); // 默认不触摸
+
+ switch (itemInfo.labelid) {
+ case STR_EXTREME_LIST:
+ sLabel.SetTextId(itemInfo.labelid);
+ sLabel.SetPosition(90, 50, 200, 35);
+ isVisible = false;
+ label_isVisible = true; // 只有label可见
+ color = Color::Green().full; // 设置label为绿色
+ SetHeight(120);
+ break;
+
+ case STR_MAX_ID:
+ isVisible = false; // 全部不可见
+ label_isVisible = false;
+ SetHeight(60);
+ break;
+
+ default:
+ sLabel.SetTextId(itemInfo.labelid);
+ sLabel.SetPosition(40, 33, 240, 35);
+ isVisible = true; // 所有元素可见
+ label_isVisible = true;
+ SetHeight(120);
+ SetTouchable(true);
+ break;
+ }
+
+ // 设置各个组件的可见性
+ sLabel.SetVisible(label_isVisible);
+ sicon.SetVisible(isVisible);
+ sbackground.SetVisible(isVisible);
+ sLabel.SetStyle(STYLE_TEXT_COLOR, color);
+
+ // 调整对齐方式
+ if (itemInfo.labelid == STR_EXTREME_LIST) {
+ sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ } else {
+ sLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ }
+}
+
+/// @brief 设置每一个itemview上的组件
+void TraingLimitItemView::SetUpChild() {
+ sbackground.SetSrc(PNG_SETTING_BACKGROUND_IMAGE);
+
+ sicon.SetPosition(330, 40);
+ sicon.SetSrc(ICON_IMAGE);
+ sicon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+
+ sLabel.SetPosition(40, 33, 240, 35);
+ sLabel.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ sLabel.SetRollSpeed(70);
+ sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+}
+
+/// @brief 获取list中每个组件的下标
+/// @return 返回下标
+AppViewId TraingLimitItemView::GetTraingLimitIndex() { return sItemInfo.id; }
+
+/// @brief 获取list中每个组件的运动Id
+/// @return 返回下标
+UIResourceTextId TraingLimitItemView::GetTraingLimitId() {
+ return sItemInfo.labelid;
+}
+
+} // namespace OHOS
\ No newline at end of file
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-26 18:34:15
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-29 15:21:46
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/src/TraingLimitModel.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 18:34:15
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-26 18:36:25
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/src/TraingLimitModel.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
+
#include "traing/training_list_limit/include/TraingLimitModel.h"
+#include "AppViewIDs.h"
+#include "UiConfig.h"
#include "common/image_cache_manager.h"
#include "components/ui_label_ext.h"
-#include "ui_resource_string.h"
-#include "UiConfig.h"
#include "ui_resource_image.h"
-#include "AppViewIDs.h"
-#include "components/ui_label_ext.h"
#include "ui_resource_string.h"
-namespace OHOS
-{
-
- TraingLimitModel::TraingLimitModel() {}
-
- TraingLimitModel::~TraingLimitModel() {}
-
- TraingLimitModel &TraingLimitModel::GetInstance()
- {
- static TraingLimitModel instance;
- return instance;
- }
-
- static char *text[] = {"一般极限运动", "滑板", "攀岩", "高空弹跳/蹦极", "跑酷", "BMX", "定向越野", "跳伞", "赛车", "铁人三项运动"};
-
- void TraingLimitModel::InitTraingLimitListItem()
- {
- TraingLimits[0] = {VIEW_TRAININGNOMAL, STR_EXTREME_SPORTS};
- TraingLimits[1] = {VIEW_TRAININGNOMAL, STR_EXTREME_SKATEBOARDING};
- TraingLimits[2] = {VIEW_TRAININGNOMAL, STR_EXTREME_ROCKCLIMBING};
- TraingLimits[3] = {VIEW_TRAININGNOMAL, STR_EXTREME_BUNGEEJUMPING};
- TraingLimits[4] = {VIEW_TRAININGNOMAL, STR_EXTREME_PARKOUR};
- TraingLimits[5] = {VIEW_TRAININGNOMAL, STR_EXTREME_BMX};
- TraingLimits[6] = {VIEW_TRAININGNOMAL, STR_EXTREME_ORIENTEERING};
- TraingLimits[7] = {VIEW_TRAININGNOMAL, STR_EXTREME_PARACHUTE};
- TraingLimits[8] = {VIEW_TRAININGNOMAL, STR_EXTREME_RACING};
- TraingLimits[9] = {VIEW_TRAININGNOMAL, STR_EXTREME_TRIATHLONS};
- }
-
- const TraingLimitItem *TraingLimitModel::GetTraingLimitlistItems() const
- {
- return TraingLimits;
- }
- uint8_t TraingLimitModel::GetTraingLimitListNum() const
- {
- return TraingLimitListMaxNum;
- }
-
-}
\ No newline at end of file
+namespace OHOS {
+
+TraingLimitModel::TraingLimitModel() {}
+
+TraingLimitModel::~TraingLimitModel() {}
+
+TraingLimitModel &TraingLimitModel::GetInstance() {
+ static TraingLimitModel instance;
+ return instance;
+}
+
+// static char *text[] = {"一般极限运动", "滑板", "攀岩", "高空弹跳/蹦极",
+// "跑酷", "BMX", "定向越野", "跳伞", "赛车", "铁人三项运动"};
+// 创建一个字符串数组,存储所有极限运动的 UI 资源标识符
+UIResourceTextId extremeSports[] = {
+ STR_EXTREME_LIST, STR_EXTREME_SPORTS,
+ STR_EXTREME_SKATEBOARDING, STR_EXTREME_ROCKCLIMBING,
+ STR_EXTREME_BUNGEEJUMPING, STR_EXTREME_PARKOUR,
+ STR_EXTREME_BMX, STR_EXTREME_ORIENTEERING,
+ STR_EXTREME_PARACHUTE, STR_EXTREME_RACING,
+ STR_EXTREME_TRIATHLONS, STR_MAX_ID};
+void TraingLimitModel::InitTraingLimitListItem() {
+ for (int index = 0; index < sizeof(extremeSports) / sizeof(extremeSports[0]);
+ ++index) {
+ TraingLimits[index] = {VIEW_TRAININGNOMAL, extremeSports[index]};
+ }
+}
+const TraingLimitItem *TraingLimitModel::GetTraingLimitlistItems() const {
+ return TraingLimits;
+}
+uint8_t TraingLimitModel::GetTraingLimitListNum() const {
+ return TraingLimitListMaxNum;
+}
+
+} // namespace OHOS
\ No newline at end of file
-#include "traing/training_list_limit/include/TraingLimitView.h"\r
-#include "traing/training_list_limit/include/TraingLimitPresenter.h"\r
-#include "traing/include/TraingModel.h"\r
-#include "uicomponents/UIComponents.h"\r
-#include "traing/Training_UiConfig.h"\r
-\r
+#include "UiConfig.h"\r
#include "components/ui_label_ext.h"\r
+#include "traing/Training_UiConfig.h"\r
+#include "traing/include/TraingModel.h"\r
+#include "traing/training_list_limit/include/TraingLimitPresenter.h"\r
+#include "traing/training_list_limit/include/TraingLimitView.h"\r
#include "ui_resource_string.h"\r
-#include "UiConfig.h"\r
+#include "uicomponents/UIComponents.h"\r
#include "wearable_log.h"\r
+#include <memory>\r
\r
-namespace OHOS\r
-{\r
- static constexpr uint8_t NUM_2 = 2;\r
- static TraingLimitView *g_pTraingLimitView{nullptr};\r
- /* --------------------------------- List --------------------------------- */\r
- static constexpr int16_t Limit_LIST_POSITION_X = 43;\r
- static constexpr int16_t Limit_LIST_POSITION_Y = 120;\r
- static constexpr int16_t Limit_SCROLLBLANKSIZE = 35; // 设置此滚动视图的空白大小。\r
- static constexpr int16 MAX_SCR_DIS = 1000;\r
- static constexpr int16 LIST_POS = 20;\r
- static constexpr int16 SNUM_2 = 2;\r
-\r
- TraingLimitView::TraingLimitView()\r
- {\r
- g_pTraingLimitView = this;\r
- }\r
\r
- TraingLimitView::~TraingLimitView()\r
- {\r
- if (viewInitStatus == true)\r
- {\r
- DeInitView();\r
- }\r
- g_pTraingLimitView = nullptr;\r
- }\r
+namespace OHOS {\r
+static TraingLimitView *g_pTraingLimitView{nullptr};\r
\r
- TraingLimitView *TraingLimitView::GetInstance()\r
- {\r
- return g_pTraingLimitView;\r
- }\r
- /// @param item\r
- void TraingLimitView::AddToTraingLimitList(const TraingLimitItem &item)\r
- {\r
- p_TraingLimitListAdapter->AddItem(item);\r
- }\r
+TraingLimitView::TraingLimitView() { g_pTraingLimitView = this; }\r
\r
- static void SetKeyActListener()\r
- {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener");\r
- // 增加按键监听\r
- RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::TraingLimitPresenter::GetInstance();\r
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
- }\r
- void TraingLimitView::InitView()\r
- {\r
- if (scrollView == nullptr)\r
- {\r
- scrollView = new UIScrollView();\r
- if (scrollView == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollView new fail!");\r
- return;\r
- }\r
- scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
- scrollView->SetScrollBlankSize(50);\r
- // scrollView->SetReboundSize(35);\r
- scrollView->SetHorizontalScrollState(false);\r
- scrollView->RequestFocus();\r
- scrollView->SetRotateFactor(1.0);\r
- scrollView->SetMaxScrollDistance(1000);\r
- scrollView->SetDragACCLevel(5);\r
- scrollView->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/\r
- scrollView->SetTouchable(true);\r
- scrollView->SetDraggable(true);\r
- container_->Add(scrollView);\r
- }\r
- /* -------------------------------------------------------------------------- */\r
- // 初始化Lable 暂时不添加\r
- if (title == nullptr)\r
- {\r
- InitLabelExt(title, 135, 52, 200, 60, "label1", STR_EXTREME_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- title->SetStyle(STYLE_TEXT_COLOR, Color::Green().full);\r
- scrollView->Add(title);\r
- }\r
- // UIList 的适配器\r
- if (p_TraingLimitListAdapter == nullptr)\r
- {\r
- p_TraingLimitListAdapter = new TraingLimitAdapter();\r
- p_TraingLimitListAdapter->SetItemClickListener(presenter_);\r
- }\r
- // 初始化列表\r
- if (TraingLimitList == nullptr)\r
- {\r
- TraingLimitList = new UIList();\r
- TraingLimitList->SetPosition(43, 120, 466, 466);\r
- TraingLimitList->SetThrowDrag(true);\r
- TraingLimitList->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
- TraingLimitList->SetMaxScrollDistance(1000);\r
- TraingLimitList->SetSwipeACCLevel(800);\r
- TraingLimitList->SetDragACCLevel(5);\r
- // 增加表冠控制\r
- TraingLimitList->SetRotateFactor(2);\r
- TraingLimitList->RequestFocus();\r
- }\r
- }\r
- UIList *TraingLimitView::GetList()\r
- {\r
- return TraingLimitList;\r
- }\r
- void TraingLimitView::DeInitView()\r
- {\r
- scrollView->RemoveAll();\r
- // RemoveAll();\r
- delete title;\r
- title = nullptr;\r
+TraingLimitView::~TraingLimitView() { g_pTraingLimitView = nullptr; }\r
\r
- delete TraingLimitList;\r
- TraingLimitList = nullptr;\r
+TraingLimitView *TraingLimitView::GetInstance() {\r
+ return g_pTraingLimitView;\r
+}\r
\r
- delete scrollView;\r
- scrollView = nullptr;\r
+void TraingLimitView::AddToTraingLimitList(const TraingLimitItem &item) {\r
+ if (p_TraingLimitListAdapter) {\r
+ p_TraingLimitListAdapter->AddItem(item);\r
+ }\r
+}\r
\r
- delete draglistener;\r
- draglistener = nullptr;\r
- }\r
+void TraingLimitView::SetKeyActListener() {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener");\r
+ auto keyActListener = static_cast<RootView::OnKeyActListener *>(\r
+ TraingLimitPresenter::GetInstance());\r
+ RootView::GetInstance()->SetOnKeyActListener(keyActListener);\r
+}\r
\r
- void TraingLimitView::PreLoad(void)\r
- {\r
- if (!viewInitStatus)\r
- {\r
- InitView();\r
- viewInitStatus = true;\r
- }\r
- }\r
+void TraingLimitView::InitScrollView() {\r
+ if (scrollView == nullptr) {\r
+ scrollView = new UIScrollView();\r
+ }\r
+ scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(),\r
+ Screen::GetInstance().GetHeight());\r
+ scrollView->SetTouchable(true);\r
+ scrollView->SetDraggable(true);\r
+ scrollView->SetDirection(1);\r
+ scrollView->SetHorizontalScrollState(false);\r
+ scrollView->SetOnDragListener(presenter_);\r
+ scrollView->SetYScrollBarVisible(true);\r
+}\r
\r
- /// @brief 页面启动时需要执行的代码逻辑\r
- void TraingLimitView::OnStart()\r
- {\r
- View<TraingLimitPresenter>::OnStart();\r
- BaseView::RootView(Color::Black().full);\r
- SetContainerView(new UIViewGroup());\r
- container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
- container_->SetOnDragListener(presenter_);\r
- container_->SetTouchable(true);\r
- container_->SetDraggable(true);\r
- PreLoad();\r
- RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
- }\r
+void TraingLimitView::InitList() {\r
+ if (p_TraingLimitListAdapter == nullptr) {\r
+ p_TraingLimitListAdapter = new TraingLimitAdapter();\r
+ }\r
+ p_TraingLimitListAdapter->SetItemClickListener(presenter_);\r
+\r
+ if (TraingLimitList == nullptr) {\r
+ TraingLimitList = new UIList();\r
+ }\r
+ TraingLimitList->SetPosition(43, 0, HORIZONTAL_RESOLUTION,\r
+ VERTICAL_RESOLUTION);\r
+ TraingLimitList->SetThrowDrag(true);\r
+ TraingLimitList->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
+ TraingLimitList->SetMaxScrollDistance(1000);\r
+ TraingLimitList->SetSwipeACCLevel(800);\r
+ TraingLimitList->SetDragACCLevel(5);\r
+ TraingLimitList->SetRotateFactor(1);\r
+ TraingLimitList->RequestFocus();\r
+}\r
\r
- /// @brief 创建页面的视图。\r
- void TraingLimitView::OnSetUpView()\r
- {\r
- View<TraingLimitPresenter>::OnSetUpView();\r
- if (TraingLimitList != nullptr && p_TraingLimitListAdapter != nullptr)\r
- {\r
- scrollView->Add(TraingLimitList);\r
- scrollView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
- RootView::GetInstance()->Add(scrollView);\r
- TraingLimitList->SetAdapter(p_TraingLimitListAdapter);\r
+void TraingLimitView::InitView() {\r
+ InitScrollView();\r
+ InitList();\r
+ SetKeyActListener();\r
+}\r
+\r
+void TraingLimitView::DeInitView() {\r
+ if (viewInitStatus) {\r
+ if (container_) {\r
+ container_->RemoveAll();\r
+ if (scrollView) {\r
+ scrollView->RemoveAll();\r
+ if (p_TraingLimitListAdapter) {\r
+ delete p_TraingLimitListAdapter;\r
+ p_TraingLimitListAdapter = nullptr;\r
+ }\r
+ if (TraingLimitList) {\r
+ delete TraingLimitList;\r
+ TraingLimitList = nullptr;\r
}\r
- Draw();\r
+ delete scrollView;\r
+ scrollView = nullptr;\r
+ }\r
}\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
+}\r
\r
- /// @brief 销毁页面的视图。\r
- void TraingLimitView::OnTearDownView()\r
- {\r
- View<TraingLimitPresenter>::OnTearDownView();\r
- return;\r
- }\r
+void TraingLimitView::PreLoad() {\r
+ if (!viewInitStatus) {\r
+ InitView();\r
+ viewInitStatus = true;\r
+ }\r
+}\r
\r
- /// @brief 页面结束时需要执行的销毁逻辑。\r
- void TraingLimitView::OnStop()\r
- {\r
- View<TraingLimitPresenter>::OnStop();\r
- if (container_ != nullptr)\r
- {\r
- container_->RemoveAll();\r
- delete container_;\r
- container_ = nullptr;\r
- }\r
- RootView::GetInstance()->ClearOnKeyActListener();\r
- RootView::GetInstance()->RemoveAll();\r
- return;\r
+void TraingLimitView::OnStart() {\r
+ View<TraingLimitPresenter>::OnStart();\r
+ SetContainerView(new UIViewGroup());\r
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(),\r
+ Screen::GetInstance().GetHeight());\r
+ BaseView::RootView(Color::Black().full);\r
+ PreLoad();\r
+ SetContainerView(container_);\r
+}\r
+\r
+void TraingLimitView::OnSetUpView() {\r
+ View<TraingLimitPresenter>::OnSetUpView();\r
+ if (scrollView && TraingLimitList) {\r
+ scrollView->Add(TraingLimitList);\r
+ scrollView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
+ container_->Add(scrollView);\r
+ if (p_TraingLimitListAdapter) {\r
+ TraingLimitList->SetAdapter(p_TraingLimitListAdapter);\r
}\r
-}
\ No newline at end of file
+ Draw();\r
+ }\r
+}\r
+\r
+void TraingLimitView::OnTearDownView() {\r
+ View<TraingLimitPresenter>::OnTearDownView();\r
+}\r
+\r
+void TraingLimitView::OnStop() {\r
+ View<TraingLimitPresenter>::OnStop();\r
+ RootView::GetInstance()->ClearOnKeyActListener();\r
+ DeInitView();\r
+ RootView::GetInstance()->RemoveAll();\r
+}\r
+} // namespace OHOS
\ No newline at end of file