解决星历下载界面息屏滑动监听失效问题 3095/1
authorluozheng <1732036298@qq.com>
Fri, 16 Jan 2026 06:24:15 +0000 (14:24 +0800)
committerluozheng <1732036298@qq.com>
Fri, 16 Jan 2026 06:24:15 +0000 (14:24 +0800)
code/sdk/application/wearable/fd272/nativeapp/nativeui/callerlog/src/CallerLogView.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/ephemeris_download/include/EphemerisDownloadPresenter.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/ephemeris_download/include/EphemerisDownloadView.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/ephemeris_download/src/EphemerisDownloadPresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/ephemeris_download/src/EphemerisDownloadView.cpp

index bc0d0a1..ed0a37c 100644 (file)
@@ -125,7 +125,7 @@ void CallerLogView::InitBluetoothHintsGroup()
     hintsImageView->SetSrc(PNG_BLUETOOTH_HINTS_PATH);\r
     hintsGroup->Add(hintsImageView);\r
     \r
-    GetRootContainer()->Add(hintsGroup);\r
+    AddViewToRootContainer(hintsGroup);\r
     hintsGroup->SetVisible(false);\r
     return;\r
 }\r
@@ -208,7 +208,7 @@ void CallerLogView::OnStart()
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallerLogView::CreateNoDataCallerLogViewGroup error");\r
         return;\r
     }\r
-    GetRootContainer()->Add(group);\r
+    AddViewToRootContainer(group);\r
 \r
     if (!CreateCallerLogViewGroup()) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallerLogView::CreateCallerLogViewGroup error");\r
@@ -256,7 +256,7 @@ void CallerLogView::OnStart()
         return;\r
     }\r
 \r
-    GetRootContainer()->Add(scrollview);\r
+    AddViewToRootContainer(scrollview);\r
 \r
     if (num == 0) {\r
         group->SetVisible(true);\r
index f498e7d..e76296e 100644 (file)
@@ -29,7 +29,6 @@ namespace OHOS
         EphemerisDownloadPresenter(const EphemerisDownloadPresenter &) = delete;
         EphemerisDownloadPresenter &operator=(const EphemerisDownloadPresenter &) = delete;
         void OnResume() override;
-        void OnStop() override;
         bool OnClick(UIView &view, const ClickEvent &event) override;
         bool OnDrag(UIView &view, const DragEvent &event) override;
         bool OnKeyAct(UIView &view, const KeyEvent &event) override;
index 876caf0..c7a1b54 100644 (file)
@@ -43,6 +43,7 @@ public:
   void UpdateDownloadButton();
   
 private:
+  UIViewGroup*group{nullptr};
   UILabelExt *labelTitle_{nullptr};
   UILabelExt *labelStatus_{nullptr};
   UILabelExt *labelStatusValue_{nullptr};  // 新增:状态值标签
index 9e06dd2..0fc58b3 100644 (file)
@@ -35,9 +35,6 @@ void EphemerisDownloadPresenter::OnResume() {
   RootView::GetInstance()->SetOnKeyActListener(this);
 }
 
-void EphemerisDownloadPresenter::OnStop() {
-}
-
 EphemerisDownloadPresenter* EphemerisDownloadPresenter::GetInstance() {
   return g_instance;
 }
index d3f7a6b..40c3bc2 100644 (file)
@@ -20,6 +20,14 @@ EphemerisDownloadView::EphemerisDownloadView() {
 }
 
 EphemerisDownloadView::~EphemerisDownloadView() {
+
+    if (group!=nullptr)
+    {
+        group->RemoveAll();
+        delete group;
+        group = nullptr;
+    }
+
     if (labelTitle_!=nullptr)
     {
         delete labelTitle_;
@@ -69,12 +77,6 @@ void EphemerisDownloadView::OnStart() {
     if (!EphemerisDownloadInit()) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "EphemerisDownloadView::EphemerisDownloadInit fail");
     }
-
-    GetRootContainer()->SetDraggable(true);
-    GetRootContainer()->SetPosition(0, 0, 466, 466);
-    GetRootContainer()->SetOnDragListener(presenter_);
-
-    GetRootContainer()->SetTouchable(true);
 }
 
 EphemerisDownloadView *EphemerisDownloadView::GetInstance() {
@@ -82,6 +84,20 @@ EphemerisDownloadView *EphemerisDownloadView::GetInstance() {
 }
 
 bool EphemerisDownloadView::EphemerisDownloadInit() {
+
+    group = new UIViewGroup();
+    if (group == nullptr)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[FindPhoneViewInit_BlueToothConnected] group new fail!!");
+        return false;
+    }
+    group->SetPosition(0, 0, 466, 466);
+    group->SetStyle(STYLE_BACKGROUND_OPA, 0);
+    group->SetTouchable(true);
+    group->SetDraggable(true);
+    group->SetOnDragListener(presenter_);
+    AddViewToRootContainer(group);
+
     // 初始化标题 - 居中显示
     labelTitle_ = new UILabelExt();
     if (labelTitle_ == nullptr) {
@@ -94,7 +110,7 @@ bool EphemerisDownloadView::EphemerisDownloadInit() {
     labelTitle_->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
     labelTitle_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
     labelTitle_->SetTextColor(Color::White());
-    AddViewToRootContainer(labelTitle_);
+    group->Add(labelTitle_);
 
     // 初始化状态标签 - 左对齐,带圆点前缀
     labelStatus_ = new UILabelExt();
@@ -107,7 +123,7 @@ bool EphemerisDownloadView::EphemerisDownloadInit() {
     labelStatus_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
     labelStatus_->SetText("● 下载状态:");
     labelStatus_->SetTextColor(Color::Yellow());//黄色
-    AddViewToRootContainer(labelStatus_);
+    group->Add(labelStatus_);
 
     // 初始化状态值标签 - 显示具体状态
     labelStatusValue_ = new UILabelExt();
@@ -118,7 +134,7 @@ bool EphemerisDownloadView::EphemerisDownloadInit() {
     labelStatusValue_->SetPosition(220, 120, 360, 70);
     labelStatusValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
     labelStatusValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
-    AddViewToRootContainer(labelStatusValue_);
+    group->Add(labelStatusValue_);
 
     // 初始化有效期标签 - 左对齐,带圆点前缀
     labelValidity_ = new UILabelExt();
@@ -131,7 +147,7 @@ bool EphemerisDownloadView::EphemerisDownloadInit() {
     labelValidity_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
     labelValidity_->SetText("● 有效期:");
     labelValidity_->SetTextColor(Color::Green());//绿色
-    AddViewToRootContainer(labelValidity_);
+    group->Add(labelValidity_);
 
     // 初始化有效期值标签 - 显示具体有效期
     labelValidityValue_ = new UILabelExt();
@@ -142,7 +158,7 @@ bool EphemerisDownloadView::EphemerisDownloadInit() {
     labelValidityValue_->SetPosition(220, 170, 360, 70);
     labelValidityValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
     labelValidityValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
-    AddViewToRootContainer(labelValidityValue_);
+    group->Add(labelValidityValue_);
 
     // 初始化说明标签 - 居中显示,灰色文字
     labelNote_ = new UILabelExt();
@@ -157,7 +173,7 @@ bool EphemerisDownloadView::EphemerisDownloadInit() {
     labelNote_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff)); // 灰色
     //修改为靠左对齐
     labelNote_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
-    AddViewToRootContainer(labelNote_);
+    group->Add(labelNote_);
 
     InitButtonExt(btnDownload_, 58, 320, 170, 90, DOWNLOAD_ID, STR_EPHEMERIS_DOWNLOAD, 30);
     btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); // 设置按键颜色
@@ -166,8 +182,8 @@ bool EphemerisDownloadView::EphemerisDownloadInit() {
     InitButtonExt(btnBack_, 238, 320, 170, 90, BACK_ID, STR_CANCEL, 30);
     btnBack_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF8A36); // 设置按键颜色
     btnBack_->SetOnClickListener(presenter_);
-    AddViewToRootContainer(btnDownload_);
-    AddViewToRootContainer(btnBack_);
+    group->Add(btnDownload_);
+    group->Add(btnBack_);
 
     // 初始化完成后更新所有状态
     UpdateDownloadStatus();