// 确保 scrollView_ 存在,并移除所有组件
if (scrollView_) {
scrollView_->RemoveAll();
- delete scrollView_;
- scrollView_ = nullptr;
- }
// 删除所有 UILabelExt 类型指针
if (labelutime) {
canvas = nullptr;
}
- if (scrollView_) {
delete scrollView_;
scrollView_ = nullptr;
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
"TraingEnddataView data initialization complete.\r\n");
}
-// 设置按键监听
-static void SetKeyActListener() {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener");
- // 增加按键监听
- RootView::OnKeyActListener *keyactListener =
- (RootView::OnKeyActListener *)OHOS::TraingEnddataPresenter::GetInstance();
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);
-}
+
void TraingEnddataView::OnStart() {
bool isNeedGPS = TraingModel::GetInstance()->IsNeedGPS(TraingModel::GetInstance()->GetSportEvent());
PreLoad();
InitData(); // 刷新数据
- GetRootContainer()->SetDraggable(true);
- GetRootContainer()->SetTouchable(true);
- GetRootContainer()->SetOnDragListener(presenter_);
+ scrollView_->SetDraggable(true);
+ scrollView_->SetTouchable(true);
+ scrollView_->SetOnDragListener(presenter_);
// 检查是否有足够的GPS数据来绘制轨迹
if (isNeedGPS == false) {
DrawTrackSegment(canvas);
DrawMarkers(canvas);
} else {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GPS轨迹数据不足,不绘制轨迹");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GPS轨迹数据不足,不绘制轨迹");
}
#endif
- SetKeyActListener();
+
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);
}
//////////////////////////////gps轨迹测试/////////////////////////////////////
#include "traing/include/TraingModel.h"
#include "uicomponents/UIComponents.h"
#include "traing/Training_UiConfig.h"
+#include "layout/grid_layout.h"
+#include "font/ui_font.h"
+#include <string>
+#include "cmsis_os.h"
namespace OHOS
{
/* InitView:初始化界面*/
void TraingNomalView ::InitView()
{
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group is nullptr in InitView");
+ return;
+ }
UIResourceTextId sport_id = TraingModel::GetInstance()->GetSportEvent();
// 初始化Lable
InitLabelExt(sporttitle_, 83, 50, 300, 35, "label1", sport_id, DEFAULT_VECTOR_FONT_FILENAME, 30);
- AddViewToRootContainer(sporttitle_);
+ group->Add(sporttitle_);
// 初始化Button
InitButton(buttonGo_, 133, 133, 200, 200, BUTTONGO);
buttonGo_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingNomalPresenter::GetInstance()));
buttonSet_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingNomalPresenter::GetInstance()));
- AddViewToRootContainer(buttonGo_);
- AddViewToRootContainer(buttonSet_);
+ group->Add(buttonGo_);
+ group->Add(buttonSet_);
/*判断是否需要GPS*/
if(TraingModel::GetInstance()->IsNeedGPS(sport_id) == false)
{
}
#if defined(SUPPORT_GNSS)
InitUILabel(heartrate_label_, -32, 230, 200, 60, "heartrate_label_", "--", DEFAULT_VECTOR_FONT_FILENAME, 30);
- AddViewToRootContainer(heartrate_label_);
+ group->Add(heartrate_label_);
InitUILabel(gps_label_, 295, 230, 200, 60, "label_time", "GPS", DEFAULT_VECTOR_FONT_FILENAME, 30);
- AddViewToRootContainer(gps_label_);
+ group->Add(gps_label_);
// 获取gps状态
bool gps_status = TraingModel::GetInstance()->GetGPSConnectState();
InitImageView(gps_image_, 375, 193, 100, 100, "gps_image", GPS_2_IMAGE);
buttonGo_->SetImageSrc(GO_2_IMAGE, GO_2_IMAGE);
}
- AddViewToRootContainer(gps_image_);
+ group->Add(gps_image_);
InitImageView(heartrate_image_, 48, 193, 100, 100, "heartrate_image_", HEARTRATE_1_IMAGE);
- AddViewToRootContainer(heartrate_image_);
+ group->Add(heartrate_image_);
#endif
}
/* DeInit:删除组件*/
void TraingNomalView::DeInit()
{
+ if (group != nullptr)
+ {
+ group->RemoveAll();
if (sporttitle_ != nullptr)
{
heartrate_image_ = nullptr;
}
#endif
+ delete group;
+ group = nullptr;
+ }
}
void TraingNomalView::PreLoad(void)
viewiInitStatus = true;
}
}
- // 设置按键监听
- static void SetKeyActListener()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener");
- // 增加按键监听
- RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::TraingNomalPresenter::GetInstance();
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);
- }
+
void TraingNomalView::OnStart()
{
-
+ // 创建group容器
+ group = new UIViewGroup();
+ group->SetPosition(0, 0);
+ group->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
- // 创建 draglistener 实例并设置为拖动监听器
- UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(TraingNomalPresenter::GetInstance());
- if (draglistener == nullptr)
- {
- return;
- }
- GetRootContainer()->SetOnDragListener(draglistener);
-
- GetRootContainer()->SetTouchable(true);
- GetRootContainer()->SetDraggable(true);
+ // 设置拖拽监听器
+ group->SetDraggable(true);
+ group->SetTouchable(true);
+ group->SetOnDragListener(presenter_);
+ // 初始化视图(所有视图将添加到group中)
PreLoad();
- SetKeyActListener();
+ // 将group添加到根容器
+ AddViewToRootContainer(group);
+
+ // 设置按键监听
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);
}
// 更新训练目标 [考虑 通用目标 特殊目标]
gps_image_->SetSrc(image);
buttonGo_->SetImageSrc(button_image_path.c_str(), button_image_path.c_str());
//刷新一下
- GetRootContainer()->Invalidate();
+ if (group != nullptr)
+ {
+ group->Invalidate();
+ }
return true;
}
}