解决闹钟界面右滑容易退出问题 830/2
authorluozheng <1732036298@qq.com>
Fri, 30 Aug 2024 06:19:47 +0000 (14:19 +0800)
committerluozheng <1732036298@qq.com>
Fri, 30 Aug 2024 06:19:47 +0000 (14:19 +0800)
code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmPresenter.h
code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmPresenter.cpp

index b572a51..508c381 100644 (file)
@@ -142,6 +142,7 @@ public:
     bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
     bool OnClick(UIView &view, const ClickEvent &event) override;\r
     bool OnDrag(UIView& view, const DragEvent& event) override;\r
+    bool OnDragEnd(UIView& view, const DragEvent& event) override;\r
     void OnSwipe(UISwipeView &view) override;\r
     bool ClickFuncId(const char *buttonName);\r
     bool ClickFuncView(UIView &view);\r
@@ -169,6 +170,7 @@ private:
     uint16_t clockQty{0};\r
     int16_t interListener;\r
     bool buttonStratus = true;\r
+    bool X_DRAG_FLAG{false};\r
 };\r
 }\r
 #endif
\ No newline at end of file
index 4b1a6a6..4feaa35 100644 (file)
@@ -360,8 +360,33 @@ bool AlarmPresenter::OnDrag(UIView &view, const DragEvent &event)
         deltaX = event.GetDeltaX();\r
         deltaY = event.GetDeltaY();\r
         if (MATH_ABS(deltaX) >= MATH_ABS(deltaY) && MATH_ABS(deltaX) > SLIDING_LENGTH) {\r
+            // MainAlarmView::GetInstance()->DropView(view);\r
+            X_DRAG_FLAG = true;\r
+        }\r
+    }\r
+    return true;\r
+}\r
+\r
+bool AlarmPresenter::OnDragEnd(UIView& view, const DragEvent& event)\r
+{\r
+    if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && X_DRAG_FLAG) \r
+    {\r
+        if(view.GetViewType() == UIViewType::UI_SWIPE_VIEW)\r
+        {\r
+            view.SetIntercept(false);\r
+        }\r
+        else\r
+        {\r
             MainAlarmView::GetInstance()->DropView(view);\r
         }\r
+        X_DRAG_FLAG = false;\r
+    }\r
+    else if(event.GetDragDirection() == DragEvent::DIRECTION_RIGHT_TO_LEFT)\r
+    {\r
+        if(view.GetViewType() == UIViewType::UI_SWIPE_VIEW)\r
+        {\r
+            view.SetIntercept(true);\r
+        }\r
     }\r
     return true;\r
 }\r