#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_more/include/TraingMoreAdapter.h"
#include "traing/training_list_more/include/TraingMoreModel.h"
-#include "components/ui_label_button_ext.h"
-#include "components/ui_label_ext.h"
-#include"ui_resource_string.h"
-
-namespace OHOS
-{
- class TraingMorePresenter;
- class TraingMoreModel;
- class TraingMoreView : public View<TraingMorePresenter>, public UIViewGroup
- {
-
- public:
- TraingMoreView();
- virtual ~TraingMoreView();
- static TraingMoreView *GetInstance(void);
-
- void OnStart() override;
- void OnSetUpView() override;
- void OnTearDownView() override;
- void OnStop() override;
-
- UIList *GetList();
- void AddToTraingMoreList(const TraingMoreItem &item);
-
- private:
- void InitView(void);
- void DeInitView(void);
- void PreLoad(void);
-
- private:
- UIScrollView *scrollView = nullptr;
- // UILabelExt *title{nullptr};
- TraingMoreAdapter *p_TraingMoreListAdapter{nullptr};
- UIList *TraingMoreList = nullptr;
- UIView::OnDragListener *draglistener{nullptr};
-
- TraingMorePresenter *g_TraingMorePresenter{nullptr};
- TraingMoreModel *g_TraingMoreModel{nullptr};
- bool viewInitStatus{false};
- };
+#include "ui_resource_string.h"
+
+namespace OHOS {
+class TraingMorePresenter;
+class TraingMoreModel;
+class TraingMoreView : public View<TraingMorePresenter>, public UIViewGroup {
+
+public:
+ TraingMoreView();
+ virtual ~TraingMoreView();
+ static TraingMoreView *GetInstance(void);
+
+ void OnStart() override;
+ void OnSetUpView() override;
+ void OnTearDownView() override;
+ void OnStop() override;
+
+ UIList *GetList();
+ void AddToTraingMoreList(const TraingMoreItem &item);
+
+private:
+ void InitView(void);
+ void InitList();
+ void InitScrollView();
+ void DeInitView(void);
+ void PreLoad(void);
+ void SetKeyActListener(void);
+
+private:
+ UIScrollView *scrollView = nullptr;
+ TraingMoreAdapter *p_TraingMoreListAdapter{nullptr};
+ UIList *TraingMoreList = nullptr;
+ bool viewInitStatus{false};
+};
} // namespace OHOS
#endif
\ No newline at end of file
-/***\r
- * @Author: Caisking 3449750381@qq.com\r
- * @Date: 2024-03-26 09:46:17\r
- * @LastEditors: Caisking 3449750381@qq.com\r
- * @LastEditTime: 2024-03-29 12:06:57\r
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMoreView.cpp\r
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
- */\r
#include "traing/training_list_more/include/TraingMoreView.h"\r
-#include "traing/training_list_more/include/TraingMorePresenter.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_more/include/TraingMorePresenter.h"\r
#include "ui_resource_string.h"\r
-#include "UiConfig.h"\r
+#include "uicomponents/UIComponents.h"\r
#include "wearable_log.h"\r
-\r
-namespace OHOS\r
-{\r
- static constexpr uint8_t NUM_2 = 2;\r
- static TraingMoreView *g_pTraingMoreView{nullptr};\r
- /* --------------------------------- List --------------------------------- */\r
- static constexpr int16_t More_LIST_POSITION_X = 43;\r
- static constexpr int16_t More_LIST_POSITION_Y = 120;\r
- static constexpr int16_t More_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
- TraingMoreView::TraingMoreView()\r
- {\r
- g_pTraingMoreView = this;\r
- }\r
-\r
- TraingMoreView::~TraingMoreView()\r
- {\r
- DeInitView();\r
- g_pTraingMoreView = nullptr;\r
- }\r
-\r
- TraingMoreView *TraingMoreView::GetInstance()\r
- {\r
- return g_pTraingMoreView;\r
- }\r
- /// @param item\r
- void TraingMoreView::AddToTraingMoreList(const TraingMoreItem &item)\r
- {\r
- p_TraingMoreListAdapter->AddItem(item);\r
- }\r
- static void SetKeyActListener()\r
- {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener");\r
- // 增加按键监听\r
- RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::TraingMorePresenter::GetInstance();\r
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
- }\r
- void TraingMoreView::InitView()\r
- {\r
- // 初始化 UIScrollView\r
- if (scrollView == nullptr)\r
- {\r
- scrollView = new UIScrollView();\r
+#include <memory>\r
+\r
+namespace OHOS {\r
+static TraingMoreView *g_pTraingMoreView{nullptr};\r
+\r
+TraingMoreView::TraingMoreView() { g_pTraingMoreView = this; }\r
+\r
+TraingMoreView::~TraingMoreView() { g_pTraingMoreView = nullptr; }\r
+\r
+TraingMoreView *TraingMoreView::GetInstance() { return g_pTraingMoreView; }\r
+\r
+void TraingMoreView::AddToTraingMoreList(const TraingMoreItem &item) {\r
+ if (p_TraingMoreListAdapter) {\r
+ p_TraingMoreListAdapter->AddItem(item);\r
+ }\r
+}\r
+\r
+void TraingMoreView::SetKeyActListener() {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener");\r
+ auto keyActListener = static_cast<RootView::OnKeyActListener *>(\r
+ TraingMorePresenter::GetInstance());\r
+ RootView::GetInstance()->SetOnKeyActListener(keyActListener);\r
+}\r
+\r
+void TraingMoreView::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
+void TraingMoreView::InitList() {\r
+ if (p_TraingMoreListAdapter == nullptr) {\r
+ p_TraingMoreListAdapter = new TraingMoreAdapter();\r
+ }\r
+ p_TraingMoreListAdapter->SetItemClickListener(presenter_);\r
+\r
+ if (TraingMoreList == nullptr) {\r
+ TraingMoreList = new UIList();\r
+ }\r
+ TraingMoreList->SetPosition(43, 0, HORIZONTAL_RESOLUTION,\r
+ VERTICAL_RESOLUTION);\r
+ TraingMoreList->SetThrowDrag(true);\r
+ TraingMoreList->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
+ TraingMoreList->SetMaxScrollDistance(1000);\r
+ TraingMoreList->SetSwipeACCLevel(800);\r
+ TraingMoreList->SetDragACCLevel(5);\r
+ TraingMoreList->SetRotateFactor(1);\r
+ TraingMoreList->RequestFocus();\r
+}\r
+\r
+void TraingMoreView::InitView() {\r
+ InitScrollView();\r
+ InitList();\r
+ SetKeyActListener();\r
+}\r
+\r
+void TraingMoreView::DeInitView() {\r
+ if (viewInitStatus) {\r
+ if (container_) {\r
+ container_->RemoveAll();\r
+ if (scrollView) {\r
+ scrollView->RemoveAll();\r
+ if (p_TraingMoreListAdapter) {\r
+ delete p_TraingMoreListAdapter;\r
+ p_TraingMoreListAdapter = nullptr;\r
}\r
-\r
- // 设置 UIScrollView 属性\r
- scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
- scrollView->SetTouchable(true);\r
- scrollView->SetDraggable(true);\r
- scrollView->SetDirection(1);\r
- // scrollView->SetReboundSize(50); // 设置空白大小\r
- // scrollView->SetScrollBlankSize(75);\r
- scrollView->SetHorizontalScrollState(false); // 设置横向不可滑动\r
-\r
- // 设置拖动监听器\r
- scrollView->SetOnDragListener(presenter_);\r
-\r
- // 初始化 label\r
- // InitLabelExt(title, 125, 52, 200, 60, "label1", STR_TRAINING, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- // scrollView->Add(title);\r
-\r
- // 初始化适配器\r
- p_TraingMoreListAdapter = new TraingMoreAdapter();\r
- p_TraingMoreListAdapter->SetItemClickListener(presenter_);\r
-\r
- // 初始化 UIList\r
- if (TraingMoreList == nullptr)\r
- {\r
- TraingMoreList = new UIList();\r
+ if (TraingMoreList) {\r
+ delete TraingMoreList;\r
+ TraingMoreList = nullptr;\r
}\r
-\r
- TraingMoreList->SetPosition(More_LIST_POSITION_X, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
- TraingMoreList->SetThrowDrag(true);\r
- TraingMoreList->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
- TraingMoreList->SetMaxScrollDistance(1000);\r
- TraingMoreList->SetSwipeACCLevel(800);\r
- TraingMoreList->SetDragACCLevel(5);\r
-\r
- // 设置滚动条可见性\r
- scrollView->SetYScrollBarVisible(true);\r
-\r
- // 增加表冠控制\r
- TraingMoreList->SetRotateFactor(1);\r
- TraingMoreList->RequestFocus();\r
-\r
- // 设置键盘事件监听\r
- SetKeyActListener();\r
- }\r
- UIList *TraingMoreView::GetList()\r
- {\r
- return TraingMoreList;\r
- }\r
- void TraingMoreView::DeInitView()\r
- {\r
- // scrollView-> RemoveAll();\r
- scrollView->RemoveAll();\r
- // delete title;\r
- // title = nullptr;\r
-\r
- TraingMoreList->RemoveAll();\r
- delete TraingMoreList;\r
- TraingMoreList = nullptr;\r
-\r
delete scrollView;\r
scrollView = nullptr;\r
-\r
- delete draglistener;\r
- draglistener = nullptr;\r
+ }\r
}\r
-\r
- void TraingMoreView::PreLoad(void)\r
- {\r
- if (!viewInitStatus)\r
- {\r
- InitView();\r
- viewInitStatus = true;\r
- }\r
- }\r
-\r
- /// @brief 页面启动时需要执行的代码逻辑\r
- void TraingMoreView::OnStart()\r
- {\r
- View<TraingMorePresenter>::OnStart();\r
- BaseView::RootView(Color::Black().full);\r
- PreLoad();\r
- }\r
-\r
- /// @brief 创建页面的视图。\r
- void TraingMoreView::OnSetUpView()\r
- {\r
- View<TraingMorePresenter>::OnSetUpView();\r
- scrollView->Add(TraingMoreList);\r
- scrollView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
- RootView::GetInstance()->Add(scrollView);\r
- TraingMoreList->SetAdapter(p_TraingMoreListAdapter);\r
- // TraingMoreList->SetIntercept(true);\r
- // TraingMoreList->RefreshList(); // 刷新列表\r
- Draw();\r
- }\r
-\r
- /// @brief 销毁页面的视图。\r
- void TraingMoreView::OnTearDownView()\r
- {\r
- View<TraingMorePresenter>::OnTearDownView();\r
- return;\r
- }\r
-\r
- /// @brief 页面结束时需要执行的销毁逻辑。\r
- void TraingMoreView::OnStop()\r
- {\r
- View<TraingMorePresenter>::OnStop();\r
-\r
- RootView::GetInstance()->ClearOnKeyActListener();\r
- // FocusManager::GetInstance()->ClearFocus();\r
- RootView::GetInstance()->RemoveAll();\r
- // RootView::GetInstance()->ClearFocus();\r
- return;\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
+}\r
+\r
+void TraingMoreView::PreLoad() {\r
+ if (!viewInitStatus) {\r
+ InitView();\r
+ viewInitStatus = true;\r
+ }\r
+}\r
+\r
+void TraingMoreView::OnStart() {\r
+ View<TraingMorePresenter>::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 TraingMoreView::OnSetUpView() {\r
+ View<TraingMorePresenter>::OnSetUpView();\r
+ if (scrollView && TraingMoreList) {\r
+ scrollView->Add(TraingMoreList);\r
+ scrollView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
+ container_->Add(scrollView);\r
+ if (p_TraingMoreListAdapter) {\r
+ TraingMoreList->SetAdapter(p_TraingMoreListAdapter);\r
}\r
-}
\ No newline at end of file
+ Draw();\r
+ }\r
+}\r
+\r
+void TraingMoreView::OnTearDownView() {\r
+ View<TraingMorePresenter>::OnTearDownView();\r
+}\r
+\r
+void TraingMoreView::OnStop() {\r
+ View<TraingMorePresenter>::OnStop();\r
+ RootView::GetInstance()->ClearOnKeyActListener();\r
+ DeInitView();\r
+ RootView::GetInstance()->RemoveAll();\r
+}\r
+} // namespace OHOS
\ No newline at end of file