解决左滑失效问题拨号盘
authorhcj <1224667075@qq.com>
Mon, 13 Oct 2025 02:58:35 +0000 (10:58 +0800)
committerhcj <1224667075@qq.com>
Mon, 13 Oct 2025 02:58:35 +0000 (10:58 +0800)
code/sdk/application/wearable/fd230/nativeapp/nativeui/phone/src/PhoneCallView.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/phone/src/PhoneCallView.cpp
code/sdk/application/wearable/n9/nativeapp/nativeui/phone/src/PhoneCallView.cpp

index 798899a..e16416e 100644 (file)
@@ -60,9 +60,15 @@ namespace OHOS
         button->SetOnClickListener(buttonClick);\r
         UIView::OnLongPressListener*buttonlongpress=static_cast<UIView::OnLongPressListener *>(PhoneCallPresenter::GetInstance());\r
         button->SetOnLongPressListener(buttonlongpress);\r
+        UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(PhoneCallPresenter::GetInstance());\r
+        button->SetOnDragListener(dragListener);\r
 \r
-        // Add to rootView\r
-        AddViewToRootContainer(button);\r
+        button->SetDraggable(true);\r
+\r
+        // Add to container_child\r
+        if (container_child) {\r
+            container_child->Add(button);\r
+        }\r
         button->SetVisible(true);\r
 \r
         return button;\r
@@ -78,6 +84,14 @@ namespace OHOS
 \r
     void PhoneCallView::Init()\r
     {\r
+        // 创建容器\r
+        if (container_child == nullptr) {\r
+            container_child = new UIViewGroup();\r
+            container_child->SetPosition(0, 0);\r
+            container_child->Resize(480, 480); // 设置容器大小\r
+            container_child->SetDraggable(true);\r
+        }\r
+        \r
         // Add Label to App\r
         if (label_ == nullptr)\r
         {\r
@@ -97,8 +111,10 @@ namespace OHOS
         label_->SetRollSpeed(0);\r
         label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40);\r
 \r
-        // Add to rootView\r
-        AddViewToRootContainer(label_);\r
+        // Add to container_child\r
+        if (container_child) {\r
+            container_child->Add(label_);\r
+        }\r
         label_->SetVisible(true);\r
         ButtonInitParams buttonParams[] = {\r
             { BUTTON1, 68, 104, 104, 70, button1Path, button1Path},\r
@@ -118,7 +134,21 @@ namespace OHOS
         for(int i = 0;i<12;i++){\r
             button_[i] = initButton(buttonParams[i]);\r
         }\r
+\r
+        UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(PhoneCallPresenter::GetInstance());\r
+        if (dragListener == nullptr)\r
+        {\r
+            return;\r
+        }\r
+        container_child->SetOnDragListener(dragListener);\r
+    \r
+\r
+        \r
+        // 将容器添加到根视图\r
+        AddViewToRootContainer(container_child);\r
+        container_child->SetVisible(true);\r
     }\r
+    \r
     static int8_t  roll_falg=0;//0.1s一次变换\r
 \r
     static void  label_Timer_CallBack(int data)\r
@@ -145,18 +175,6 @@ namespace OHOS
         if(call_roll_timer)\r
         {\r
             roll_falg=10;\r
-            // osTimerStop(call_roll_timer);\r
-            // osTimerDelete(call_roll_timer);\r
-\r
-            // call_roll_timer = osTimerNew((osTimerFunc_t)label_Timer_CallBack, osTimerPeriodic, NULL, NULL);\r
-            // tick =100;// osMs2Tick(1000);\r
-            // retTimer = osTimerStart(call_roll_timer, tick);\r
-            // if (retTimer != osOK && call_roll_timer != NULL) {\r
-            //     osTimerDelete(call_roll_timer);\r
-            //     call_roll_timer = NULL;\r
-            //     return ;\r
-            // }\r
-\r
         }\r
         else\r
         {\r
index 798899a..e16416e 100644 (file)
@@ -60,9 +60,15 @@ namespace OHOS
         button->SetOnClickListener(buttonClick);\r
         UIView::OnLongPressListener*buttonlongpress=static_cast<UIView::OnLongPressListener *>(PhoneCallPresenter::GetInstance());\r
         button->SetOnLongPressListener(buttonlongpress);\r
+        UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(PhoneCallPresenter::GetInstance());\r
+        button->SetOnDragListener(dragListener);\r
 \r
-        // Add to rootView\r
-        AddViewToRootContainer(button);\r
+        button->SetDraggable(true);\r
+\r
+        // Add to container_child\r
+        if (container_child) {\r
+            container_child->Add(button);\r
+        }\r
         button->SetVisible(true);\r
 \r
         return button;\r
@@ -78,6 +84,14 @@ namespace OHOS
 \r
     void PhoneCallView::Init()\r
     {\r
+        // 创建容器\r
+        if (container_child == nullptr) {\r
+            container_child = new UIViewGroup();\r
+            container_child->SetPosition(0, 0);\r
+            container_child->Resize(480, 480); // 设置容器大小\r
+            container_child->SetDraggable(true);\r
+        }\r
+        \r
         // Add Label to App\r
         if (label_ == nullptr)\r
         {\r
@@ -97,8 +111,10 @@ namespace OHOS
         label_->SetRollSpeed(0);\r
         label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40);\r
 \r
-        // Add to rootView\r
-        AddViewToRootContainer(label_);\r
+        // Add to container_child\r
+        if (container_child) {\r
+            container_child->Add(label_);\r
+        }\r
         label_->SetVisible(true);\r
         ButtonInitParams buttonParams[] = {\r
             { BUTTON1, 68, 104, 104, 70, button1Path, button1Path},\r
@@ -118,7 +134,21 @@ namespace OHOS
         for(int i = 0;i<12;i++){\r
             button_[i] = initButton(buttonParams[i]);\r
         }\r
+\r
+        UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(PhoneCallPresenter::GetInstance());\r
+        if (dragListener == nullptr)\r
+        {\r
+            return;\r
+        }\r
+        container_child->SetOnDragListener(dragListener);\r
+    \r
+\r
+        \r
+        // 将容器添加到根视图\r
+        AddViewToRootContainer(container_child);\r
+        container_child->SetVisible(true);\r
     }\r
+    \r
     static int8_t  roll_falg=0;//0.1s一次变换\r
 \r
     static void  label_Timer_CallBack(int data)\r
@@ -145,18 +175,6 @@ namespace OHOS
         if(call_roll_timer)\r
         {\r
             roll_falg=10;\r
-            // osTimerStop(call_roll_timer);\r
-            // osTimerDelete(call_roll_timer);\r
-\r
-            // call_roll_timer = osTimerNew((osTimerFunc_t)label_Timer_CallBack, osTimerPeriodic, NULL, NULL);\r
-            // tick =100;// osMs2Tick(1000);\r
-            // retTimer = osTimerStart(call_roll_timer, tick);\r
-            // if (retTimer != osOK && call_roll_timer != NULL) {\r
-            //     osTimerDelete(call_roll_timer);\r
-            //     call_roll_timer = NULL;\r
-            //     return ;\r
-            // }\r
-\r
         }\r
         else\r
         {\r
index 798899a..e16416e 100644 (file)
@@ -60,9 +60,15 @@ namespace OHOS
         button->SetOnClickListener(buttonClick);\r
         UIView::OnLongPressListener*buttonlongpress=static_cast<UIView::OnLongPressListener *>(PhoneCallPresenter::GetInstance());\r
         button->SetOnLongPressListener(buttonlongpress);\r
+        UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(PhoneCallPresenter::GetInstance());\r
+        button->SetOnDragListener(dragListener);\r
 \r
-        // Add to rootView\r
-        AddViewToRootContainer(button);\r
+        button->SetDraggable(true);\r
+\r
+        // Add to container_child\r
+        if (container_child) {\r
+            container_child->Add(button);\r
+        }\r
         button->SetVisible(true);\r
 \r
         return button;\r
@@ -78,6 +84,14 @@ namespace OHOS
 \r
     void PhoneCallView::Init()\r
     {\r
+        // 创建容器\r
+        if (container_child == nullptr) {\r
+            container_child = new UIViewGroup();\r
+            container_child->SetPosition(0, 0);\r
+            container_child->Resize(480, 480); // 设置容器大小\r
+            container_child->SetDraggable(true);\r
+        }\r
+        \r
         // Add Label to App\r
         if (label_ == nullptr)\r
         {\r
@@ -97,8 +111,10 @@ namespace OHOS
         label_->SetRollSpeed(0);\r
         label_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40);\r
 \r
-        // Add to rootView\r
-        AddViewToRootContainer(label_);\r
+        // Add to container_child\r
+        if (container_child) {\r
+            container_child->Add(label_);\r
+        }\r
         label_->SetVisible(true);\r
         ButtonInitParams buttonParams[] = {\r
             { BUTTON1, 68, 104, 104, 70, button1Path, button1Path},\r
@@ -118,7 +134,21 @@ namespace OHOS
         for(int i = 0;i<12;i++){\r
             button_[i] = initButton(buttonParams[i]);\r
         }\r
+\r
+        UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(PhoneCallPresenter::GetInstance());\r
+        if (dragListener == nullptr)\r
+        {\r
+            return;\r
+        }\r
+        container_child->SetOnDragListener(dragListener);\r
+    \r
+\r
+        \r
+        // 将容器添加到根视图\r
+        AddViewToRootContainer(container_child);\r
+        container_child->SetVisible(true);\r
     }\r
+    \r
     static int8_t  roll_falg=0;//0.1s一次变换\r
 \r
     static void  label_Timer_CallBack(int data)\r
@@ -145,18 +175,6 @@ namespace OHOS
         if(call_roll_timer)\r
         {\r
             roll_falg=10;\r
-            // osTimerStop(call_roll_timer);\r
-            // osTimerDelete(call_roll_timer);\r
-\r
-            // call_roll_timer = osTimerNew((osTimerFunc_t)label_Timer_CallBack, osTimerPeriodic, NULL, NULL);\r
-            // tick =100;// osMs2Tick(1000);\r
-            // retTimer = osTimerStart(call_roll_timer, tick);\r
-            // if (retTimer != osOK && call_roll_timer != NULL) {\r
-            //     osTimerDelete(call_roll_timer);\r
-            //     call_roll_timer = NULL;\r
-            //     return ;\r
-            // }\r
-\r
         }\r
         else\r
         {\r