#ifndef TraingFitness_ITEM_VIEW_H
#define TraingFitness_ITEM_VIEW_H
-#include "components/ui_label.h"
-#include "components/ui_label_ext.h"
-#include "ui_resource_string.h"
-#include "components/ui_view_group.h"
+#include "AppViewIDs.h"
#include "components/ui_checkbox.h"
#include "components/ui_image_view.h"
-#include "traing/training_list_fitness/include/TraingFitnessAdapter.h"
+#include "components/ui_label.h"
#include "components/ui_label_button.h"
-#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_view_group.h"
#include "ohos_types.h"
+#include "traing/training_list_fitness/include/TraingFitnessAdapter.h"
+#include "ui_resource_string.h"
+
+namespace OHOS {
+class TraingFitnessItemView : public UIViewGroup {
+public:
+ explicit TraingFitnessItemView();
+ virtual ~TraingFitnessItemView();
+ virtual void SetItemInfo(const TraingFitnessItem itemInfo);
+ virtual void SetUpChild();
+ AppViewId GetTraingFitnessIndex();
+ UIResourceTextId GetTraingFitnessId();
-namespace OHOS
-{
- class TraingFitnessItemView : public UIViewGroup
- {
- public:
- explicit TraingFitnessItemView();
- virtual ~TraingFitnessItemView();
- virtual void SetItemInfo(const TraingFitnessItem itemInfo);
- virtual void SetUpChild();
- AppViewId GetTraingFitnessIndex();
- UIResourceTextId GetTraingFitnessId();
- private:
- TraingFitnessItemView(const TraingFitnessItemView &);
- UIImageView sbackground; // 背景
- UIImageView sicon; // 箭头
- UILabelExt sLabel; // 标签
- TraingFitnessItem sItemInfo = {VIEW_INVALID, STR_EXERCISE_GENERAL};
- };
+private:
+ TraingFitnessItemView(const TraingFitnessItemView &);
+ UIImageView sbackground; // 背景
+ UIImageView sicon; // 箭头
+ UILabelExt sLabel; // 标签
+ TraingFitnessItem sItemInfo = {VIEW_INVALID, STR_EXERCISE_GENERAL};
+};
-}
+} // namespace OHOS
#endif
\ No newline at end of file
TraingFitnessModel(const TraingFitnessModel &);
TraingFitnessModel &operator=(const TraingFitnessModel &);
virtual ~TraingFitnessModel();
- static const uint16_t TraingFitnessListMaxNum = 57;
+ static const uint16_t TraingFitnessListMaxNum = 59;
TraingFitnessItem TraingFitnesss[TraingFitnessListMaxNum] = {VIEW_INVALID, STR_EXERCISE_GENERAL};
// std::map<int, AppViewId> TraingFitnessIdToViewId;
private:
UIScrollView *scrollView = nullptr;
- UILabelExt *title{nullptr};
+ // UILabelExt *title{nullptr};
TraingFitnessAdapter *p_TraingFitnessListAdapter{nullptr};
UIList *TraingFitnessList = nullptr;
UIView::OnDragListener *draglistener{nullptr};
-
#include "traing/training_list_fitness/include/TraingFitnessItemView.h"
+#include "UiConfig.h"
+#include "traing/Training_UiConfig.h"
#include "traing/include/TraingModel.h"
#include "uicomponents/UIComponents.h"
-#include "traing/Training_UiConfig.h"
-#include "UiConfig.h"
-namespace OHOS
-{
-
- TraingFitnessItemView::TraingFitnessItemView()
- {
- 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);
- }
-
- TraingFitnessItemView::~TraingFitnessItemView()
- {
- Remove(&sbackground);
- Remove(&sicon);
- Remove(&sLabel);
- }
-
- /// @brief 设置item的信息
- /// @param itemInfo
- void TraingFitnessItemView::SetItemInfo(const TraingFitnessItem itemInfo)
- {
- sItemInfo = itemInfo;
- sLabel.SetTextId(itemInfo.labelid);
- }
-
- /// @brief 设置每一个itemview上的组件
- void TraingFitnessItemView::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 TraingFitnessItemView::GetTraingFitnessIndex()
- {
- return sItemInfo.id;
- }
-
- /// @brief 获取list的中每个组件的在list的运动Id
- /// @return 返回下标
- UIResourceTextId TraingFitnessItemView::GetTraingFitnessId()
- {
- return sItemInfo.labelid;
- }
-}
\ No newline at end of file
+
+namespace OHOS {
+
+TraingFitnessItemView::TraingFitnessItemView() {
+ 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);
+}
+
+TraingFitnessItemView::~TraingFitnessItemView() {
+ Remove(&sbackground);
+ Remove(&sicon);
+ Remove(&sLabel);
+}
+
+/// @brief 设置item的信息
+/// @param itemInfo
+void TraingFitnessItemView::SetItemInfo(const TraingFitnessItem itemInfo) {
+ sItemInfo = itemInfo;
+
+ // 先设置所有视图的可见性
+ bool isVisible = false;
+ bool label_isVisible = false;
+ uint32_t color = Color::White().full;
+ SetTouchable(false); // 默认不触摸
+
+ switch (itemInfo.labelid) {
+ case STR_EXERCISE_TITLE:
+ 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_EXERCISE_LIST:
+ 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_EXERCISE_TITLE) {
+ sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ } else {
+ sLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ }
+}
+
+/// @brief 设置每一个itemview上的组件
+void TraingFitnessItemView::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 TraingFitnessItemView::GetTraingFitnessIndex() {
+ return sItemInfo.id;
+}
+
+/// @brief 获取list中每个组件的运动Id
+/// @return 返回下标
+UIResourceTextId TraingFitnessItemView::GetTraingFitnessId() {
+ return sItemInfo.labelid;
+}
+
+} // namespace OHOS
\ No newline at end of file
* @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_fitness/src/TraingFitnessModel.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ * @FilePath:
+ * /sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessModel.cpp
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置
+ * 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
#include "traing/training_list_fitness/include/TraingFitnessModel.h"
-#include "common/image_cache_manager.h"
+#include "AppViewIDs.h"
#include "UiConfig.h"
+#include "common/image_cache_manager.h"
#include "ui_resource_image.h"
-#include "AppViewIDs.h"
-namespace OHOS
-{
+namespace OHOS {
- TraingFitnessModel::TraingFitnessModel() {}
+TraingFitnessModel::TraingFitnessModel() {}
- TraingFitnessModel::~TraingFitnessModel() {}
+TraingFitnessModel::~TraingFitnessModel() {}
- TraingFitnessModel &TraingFitnessModel::GetInstance()
- {
- static TraingFitnessModel instance;
- return instance;
- }
- UIResourceTextId text[] = {
- STR_EXERCISE_OUTDOORWALKING,
- STR_EXERCISE_OUTDOORRUNNING,
- STR_EXERCISE_OUTDOORBIKING,
- STR_EXERCISE_GENERAL,
- STR_EXERCISE_FREETRAINING,
- STR_EXERCISE_RESISTANCETRAINING,
- STR_EXERCISE_SPINBIKE,
- STR_EXERCISE_TREADMILL,
- STR_EXERCISE_STROLLMACHINE,
- STR_EXERCISE_HIIT,
- STR_EXERCISE_CROSSFIT,
- STR_EXERCISE_GROUPCALISTHENICS,
- STR_EXERCISE_YOGA,
- STR_EXERCISE_YOGACAT,
- STR_EXERCISE_YOGACOW,
- STR_EXERCISE_YOGACOBRA,
- STR_EXERCISE_YOGAHERO1,
- STR_EXERCISE_YOGAHERO2,
- STR_EXERCISE_YOGAHERO3,
- STR_EXERCISE_YOGAROLLING,
- STR_EXERCISE_INDOORWALKING,
- STR_EXERCISE_INDOORRUNNING,
- STR_EXERCISE_JUMPINGROPE,
- STR_EXERCISE_PILATES,
- STR_EXERCISE_CROSS_FIT,
- STR_EXERCISE_FUNCTIONALTRAINING,
- STR_EXERCISE_PHYSICALTRAINING,
- STR_EXERCISE_TAEKWONDO,
- STR_EXERCISE_BOXING,
- STR_EXERCISE_KICKBOXING,
- STR_EXERCISE_KARATE,
- STR_EXERCISE_FENCING,
- STR_EXERCISE_CORETRAINING,
- STR_EXERCISE_BODYCOMBAT,
- STR_EXERCISE_KENDO,
- STR_EXERCISE_HORIZONTALBAR,
- STR_EXERCISE_PARALLELBARS,
- STR_EXERCISE_CIRCUIT,
- STR_EXERCISE_AEROBICS,
- STR_EXERCISE_CALISTHENICE,
- STR_EXERCISE_P90X,
- STR_EXERCISE_KETTLEBELLTRAINING,
- STR_EXERCISE_MIXEDMARTIALARTS,
- STR_EXERCISE_STAIRCLIMBINGMACHINE,
- STR_EXERCISE_WEIGHTLIFTING,
- STR_EXERCISE_BARRE,
- STR_EXERCISE_HANDCYCLING,
- STR_EXERCISE_TRACKFIELD,
- STR_EXERCISE_WRESTLING,
- STR_EXERCISE_MINDBODY,
- STR_EXERCISE_FLEXIBILITY,
- STR_EXERCISE_MIXEDCARDIO,
- STR_EXERCISE_TRADITIONALSTRENGTHTRAINING,
- STR_EXERCISE_CROSSTRAINING,
- STR_EXERCISE_GYMNASTICS,
- STR_EXERCISE_STEPTRAINING,
- STR_EXERCISE_ELLIPTICALTRAINER,
- STR_EXERCISE_ROWINGMACHINE,
- };
+TraingFitnessModel &TraingFitnessModel::GetInstance() {
+ static TraingFitnessModel instance;
+ return instance;
+}
+UIResourceTextId text[] = {
+ STR_EXERCISE_TITLE, // title 健身运动
+ STR_EXERCISE_OUTDOORWALKING,
+ STR_EXERCISE_OUTDOORRUNNING,
+ STR_EXERCISE_OUTDOORBIKING,
+ STR_EXERCISE_GENERAL,
+ STR_EXERCISE_FREETRAINING,
+ STR_EXERCISE_RESISTANCETRAINING,
+ STR_EXERCISE_SPINBIKE,
+ STR_EXERCISE_TREADMILL,
+ STR_EXERCISE_STROLLMACHINE,
+ STR_EXERCISE_HIIT,
+ STR_EXERCISE_CROSSFIT,
+ STR_EXERCISE_GROUPCALISTHENICS,
+ STR_EXERCISE_YOGA,
+ STR_EXERCISE_YOGACAT,
+ STR_EXERCISE_YOGACOW,
+ STR_EXERCISE_YOGACOBRA,
+ STR_EXERCISE_YOGAHERO1,
+ STR_EXERCISE_YOGAHERO2,
+ STR_EXERCISE_YOGAHERO3,
+ STR_EXERCISE_YOGAROLLING,
+ STR_EXERCISE_INDOORWALKING,
+ STR_EXERCISE_INDOORRUNNING,
+ STR_EXERCISE_JUMPINGROPE,
+ STR_EXERCISE_PILATES,
+ STR_EXERCISE_CROSS_FIT,
+ STR_EXERCISE_FUNCTIONALTRAINING,
+ STR_EXERCISE_PHYSICALTRAINING,
+ STR_EXERCISE_TAEKWONDO,
+ STR_EXERCISE_BOXING,
+ STR_EXERCISE_KICKBOXING,
+ STR_EXERCISE_KARATE,
+ STR_EXERCISE_FENCING,
+ STR_EXERCISE_CORETRAINING,
+ STR_EXERCISE_BODYCOMBAT,
+ STR_EXERCISE_KENDO,
+ STR_EXERCISE_HORIZONTALBAR,
+ STR_EXERCISE_PARALLELBARS,
+ STR_EXERCISE_CIRCUIT,
+ STR_EXERCISE_AEROBICS,
+ STR_EXERCISE_CALISTHENICE,
+ STR_EXERCISE_P90X,
+ STR_EXERCISE_KETTLEBELLTRAINING,
+ STR_EXERCISE_MIXEDMARTIALARTS,
+ STR_EXERCISE_STAIRCLIMBINGMACHINE,
+ STR_EXERCISE_WEIGHTLIFTING,
+ STR_EXERCISE_BARRE,
+ STR_EXERCISE_HANDCYCLING,
+ STR_EXERCISE_TRACKFIELD,
+ STR_EXERCISE_WRESTLING,
+ STR_EXERCISE_MINDBODY,
+ STR_EXERCISE_FLEXIBILITY,
+ STR_EXERCISE_MIXEDCARDIO,
+ STR_EXERCISE_TRADITIONALSTRENGTHTRAINING,
+ STR_EXERCISE_CROSSTRAINING,
+ STR_EXERCISE_GYMNASTICS,
+ STR_EXERCISE_STEPTRAINING,
+ STR_EXERCISE_ELLIPTICALTRAINER,
+ STR_EXERCISE_ROWINGMACHINE,
+ STR_EXERCISE_LIST, //健身类
+};
- void TraingFitnessModel::InitTraingFitnessListItem()
- {
- for (int i = 0; i < 57; ++i) // 更新循环以适应 57 个元素
- {
- TraingFitnesss[i] = {VIEW_TRAININGNOMAL, text[i]};
- }
- }
- const TraingFitnessItem *TraingFitnessModel::GetTraingFitnesslistItems() const
- {
- return TraingFitnesss;
- }
- uint8_t TraingFitnessModel::GetTraingFitnessListNum() const
- {
- return TraingFitnessListMaxNum;
- }
+void TraingFitnessModel::InitTraingFitnessListItem() {
+ for (int i = 0; i < 59; ++i) // 更新循环以适应 57 个元素
+ {
+ TraingFitnesss[i] = {VIEW_TRAININGNOMAL, text[i]};
+ }
+}
+const TraingFitnessItem *TraingFitnessModel::GetTraingFitnesslistItems() const {
+ return TraingFitnesss;
+}
+uint8_t TraingFitnessModel::GetTraingFitnessListNum() const {
+ return TraingFitnessListMaxNum;
+}
-}
\ No newline at end of file
+} // namespace OHOS
\ No newline at end of file
return;
}
scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
- scrollView->SetScrollBlankSize(50);
- // scrollView->SetReboundSize(35);
+ // scrollView->SetScrollBlankSize(50);
+ // // scrollView->SetReboundSize(35);
scrollView->SetHorizontalScrollState(false);
- scrollView->RequestFocus();
- scrollView->SetRotateFactor(1.0);
+ // scrollView->RequestFocus();
+ // scrollView->SetRotateFactor(1.0);
scrollView->SetMaxScrollDistance(1000);
scrollView->SetDragACCLevel(5);
scrollView->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/
container_->Add(scrollView);
}
/* -------------------------------------------------------------------------- */
- // 初始化Lable 暂时不添加
- if (title == nullptr)
- {
- InitLabelExt(title, 135, 52, 200, 60, "label1", STR_EXERCISE_TITLE, DEFAULT_VECTOR_FONT_FILENAME, 30);
- title->SetStyle(STYLE_TEXT_COLOR, Color::Green().full);
- scrollView->Add(title);
- }
+ // // 初始化Lable 暂时不添加
+ // if (title == nullptr)
+ // {
+ // InitLabelExt(title, 135, 52, 200, 60, "label1", STR_EXERCISE_TITLE, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ // title->SetStyle(STYLE_TEXT_COLOR, Color::Green().full);
+ // scrollView->Add(title);
+ // }
// UIList 的适配器
if (p_TraingFitnessListAdapter == nullptr)
{
if (TraingFitnessList == nullptr)
{
TraingFitnessList = new UIList();
- TraingFitnessList->SetPosition(43, 120, 466, 466);
+ TraingFitnessList->SetPosition(43, 0, 466, 466);
TraingFitnessList->SetThrowDrag(true);
TraingFitnessList->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
TraingFitnessList->SetMaxScrollDistance(1000);
TraingFitnessList->SetSwipeACCLevel(800);
TraingFitnessList->SetDragACCLevel(5);
// 增加表冠控制
- TraingFitnessList->SetRotateFactor(2);
+ TraingFitnessList->SetRotateFactor(1.0);
TraingFitnessList->RequestFocus();
}
}
// scrollView-> RemoveAll();
scrollView->RemoveAll();
- delete title;
- title = nullptr;
+ // delete title;
+ // title = nullptr;
delete TraingFitnessList;
TraingFitnessList = nullptr;
* @Date: 2024-03-27 11:13:16
* @LastEditors: Caisking 3449750381@qq.com
* @LastEditTime: 2024-03-29 11:47:02
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMoreItemView.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ * @FilePath:
+ * /sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMoreItemView.cpp
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置
+ * 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
#include "traing/training_list_more/include/TraingMoreItemView.h"
-#include "traing/include/TraingModel.h"
-#include "uicomponents/UIComponents.h"
-#include "traing/Training_UiConfig.h"
+#include "UiConfig.h"
#include "components/ui_label_ext.h"
+#include "traing/Training_UiConfig.h"
+#include "traing/include/TraingModel.h"
#include "ui_resource_string.h"
-#include "UiConfig.h"
-namespace OHOS
-{
-
- TraingMoreItemView::TraingMoreItemView()
- {
- 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);
- Add(&slogo);
- }
-
- TraingMoreItemView::~TraingMoreItemView()
- {
- Remove(&sbackground);
- Remove(&sicon);
- Remove(&sLabel);
- Remove(&slogo);
- }
-
- /// @brief 设置item的信息
- /// @param itemInfo
- void TraingMoreItemView::SetItemInfo(const TraingMoreItem itemInfo)
- {
- sItemInfo = itemInfo;
- if(itemInfo.id == VIEW_TRAININGMORE)
- {
- sLabel.SetTextId(STR_TRAINING);
- sLabel.SetPosition(90, 50, 200, 35);
-
- sicon.SetVisible(false);
- sbackground.SetVisible(false);
- slogo.SetVisible(false);
- sLabel.SetVisible(true);
- sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- SetHeight(120);
- }
- else if(itemInfo.id == VIEW_INVALID)
- {
- sLabel.SetVisible(false);
- sicon.SetVisible(false);
- sbackground.SetVisible(false);
- slogo.SetVisible(false);
- sLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
- SetHeight(60);
- }
- else
- {
- sLabel.SetTextId(itemInfo.labelid);
- slogo.SetSrc(itemInfo.logo);
- sLabel.SetPosition(105, 33, 200, 35);
-
- sbackground.SetVisible(true);
- sLabel.SetVisible(true);
- sicon.SetVisible(true);
- slogo.SetVisible(true);
- sLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
- SetHeight(120);
- }
- }
-
- /// @brief 设置每一个itemview上的组件
- void TraingMoreItemView::SetUpChild()
- {
- sbackground.SetSrc(PNG_SETTING_BACKGROUND_IMAGE);
-
- slogo.SetPosition(40, 32);
- slogo.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
-
- sicon.SetPosition(330, 40);
- sicon.SetSrc(ICON_IMAGE);
- sicon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
-
- sLabel.SetPosition(105, 33, 200, 35);
- sLabel.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
- // sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- sLabel.SetRollSpeed(70);
- sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
- }
-
- /// @brief 获取list的中每个组件的在list的下标
- /// @return 返回下标
- AppViewId TraingMoreItemView::GetTraingMoreIndex()
- {
- return sItemInfo.id;
- }
-
- UIResourceTextId TraingMoreItemView::GetTraingMoreId()
- {
- return sItemInfo.labelid;
- }
-}
\ No newline at end of file
+#include "uicomponents/UIComponents.h"
+namespace OHOS {
+
+TraingMoreItemView::TraingMoreItemView() {
+ 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);
+ Add(&slogo);
+}
+
+TraingMoreItemView::~TraingMoreItemView() {
+ Remove(&sbackground);
+ Remove(&sicon);
+ Remove(&sLabel);
+ Remove(&slogo);
+}
+
+/// @brief 设置item的信息
+/// @param itemInfo
+void TraingMoreItemView::SetItemInfo(const TraingMoreItem itemInfo) {
+ sItemInfo = itemInfo;
+
+ // 先设置所有视图的可见性
+ bool isVisible = false;
+ bool label_isVisible = false;
+ SetTouchable(false); // 默认不触摸
+
+ switch (itemInfo.id) {
+ case VIEW_TRAININGMORE:
+ sLabel.SetTextId(STR_TRAINING);
+ sLabel.SetPosition(90, 50, 200, 35);
+ isVisible = false;
+ label_isVisible = true; // 只有label可见
+ SetHeight(120);
+ break;
+
+ case VIEW_INVALID:
+ isVisible = false; // 全部不可见
+ label_isVisible = false;
+ SetHeight(60);
+ break;
+
+ default:
+ sLabel.SetTextId(itemInfo.labelid);
+ slogo.SetSrc(itemInfo.logo);
+ sLabel.SetPosition(105, 33, 200, 35);
+ isVisible = true; // 所有元素可见
+ label_isVisible = true;
+ SetHeight(120);
+ SetTouchable(true);
+ break;
+ }
+
+ // 设置各个组件的可见性
+ sLabel.SetVisible(label_isVisible);
+ sicon.SetVisible(isVisible);
+ sbackground.SetVisible(isVisible);
+ slogo.SetVisible(isVisible);
+
+ // 调整对齐方式
+ if (itemInfo.id == VIEW_INVALID) {
+ sLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ } else if (itemInfo.id == VIEW_TRAININGMORE) {
+ sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ } else {
+ sLabel.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ }
+}
+
+/// @brief 设置每一个itemview上的组件
+void TraingMoreItemView::SetUpChild() {
+ sbackground.SetSrc(PNG_SETTING_BACKGROUND_IMAGE);
+
+ slogo.SetPosition(40, 32);
+ slogo.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+
+ sicon.SetPosition(330, 40);
+ sicon.SetSrc(ICON_IMAGE);
+ sicon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+
+ sLabel.SetPosition(105, 33, 200, 35);
+ sLabel.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ // sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ sLabel.SetRollSpeed(70);
+ sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+}
+
+/// @brief 获取list的中每个组件的在list的下标
+/// @return 返回下标
+AppViewId TraingMoreItemView::GetTraingMoreIndex() { return sItemInfo.id; }
+
+UIResourceTextId TraingMoreItemView::GetTraingMoreId() {
+ return sItemInfo.labelid;
+}
+} // namespace OHOS
\ No newline at end of file