From eaa4bf5c9a67c96c94e0ec6b24e53c44cffb8b18 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Thu, 19 Sep 2024 20:53:58 +0800 Subject: [PATCH] =?utf8?q?1.=E8=A7=A3=E5=86=B3=E8=AF=AD=E8=A8=80=E7=95=8C?= =?utf8?q?=E9=9D=A2=E5=86=85=E5=AD=98=E6=B3=84=E6=BC=8F=E9=97=AE=E9=A2=98?= =?utf8?q?=202.=E8=A7=A3=E5=86=B3.#741=E8=AF=AD=E8=A8=80=E9=80=89=E6=8B=A9?= =?utf8?q?=E7=95=8C=E9=9D=A2=E4=B8=8A=E6=BB=91=E6=97=B6=E5=BA=95=E9=83=A8?= =?utf8?q?=E4=BC=9A=E6=9C=89=E9=BB=91=E8=BE=B9=EF=BC=8C=E4=BD=BF=E7=94=A8?= =?utf8?q?=E7=BC=96=E7=A0=81=E5=99=A8=E6=97=B6=E6=97=A0=E6=AD=A4=E6=83=85?= =?utf8?q?=E5=86=B5bug=203.=E8=A7=A3=E5=86=B3=E7=B3=BB=E7=BB=9F=E7=95=8C?= =?utf8?q?=E9=9D=A2=E7=9A=84=E5=86=85=E5=AD=98=E6=B3=84=E6=BC=8F=E9=97=AE?= =?utf8?q?=E9=A2=98=EF=BC=8C=E5=B9=B6=E4=BD=BF=E7=94=A8=E4=B8=80=E4=B8=AA?= =?utf8?q?=E8=BE=85=E5=8A=A9=E7=BB=84=E4=BB=B6=E8=A7=A3=E5=86=B3=E7=B3=BB?= =?utf8?q?=E7=BB=9F=E8=A7=86=E5=9B=BE=E6=9C=80=E5=90=8E=E4=B8=80=E4=B8=AA?= =?utf8?q?=E6=8C=89=E9=92=AE=E8=A2=AB=E5=88=99=E6=8C=A1=E4=BD=8Fbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../src/LanguageSwitchListitemView.cpp | 5 +- .../languagecode/src/LanguageSwitchView.cpp | 137 ++++++++++-------- .../nativeui/system/include/SystemView.h | 7 +- .../nativeui/system/src/SystemView.cpp | 35 +++-- 4 files changed, 110 insertions(+), 74 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchListitemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchListitemView.cpp index 1a584fd12..5f63bca0f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchListitemView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchListitemView.cpp @@ -1,8 +1,8 @@ /* * @Author: luozheng 1732036298@qq.com * @Date: 2024-03-28 14:28:03 - * @LastEditors: SnickerSun snickersun@163.com - * @LastEditTime: 2024-08-30 20:49:17 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-09-19 16:35:47 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchListitemView.cpp */ #include "languagecode/include/LanguageSwitchListitemView.h" @@ -28,6 +28,7 @@ namespace OHOS { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListitemView::~LanguageSwitchListitemView"); Remove(&m_LabelButtonExt); + Remove(&languae_Image); } void LanguageSwitchListitemView::SetItemInfo(const Language itemInfo) diff --git a/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchView.cpp b/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchView.cpp index 58e906b68..de74878b7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchView.cpp @@ -19,8 +19,8 @@ namespace OHOS static constexpr int16_t MAX_SCROLL_DIS = 1000; static constexpr int16_t MAX_REBOUND_SIZE = 40; static constexpr int16_t MAX_LANGUAGE_LIST_SCROLLBLANKSIZE = 50; - static constexpr int16_t ROTATEFACTORVALUE = 4; - + static constexpr int16_t ROTATEFACTORVALUE = 1.0; + static LanguageSwitchView *g_pLanguageSwitchView{nullptr}; LanguageSwitchView::LanguageSwitchView() { @@ -59,35 +59,56 @@ namespace OHOS void LanguageSwitchView::ClearAll(void) { - if (LanguageSwitchScrollView != nullptr) + if (container_ != nullptr) { - LanguageSwitchScrollView->RemoveAll(); - - delete LanguageSwitchViewTitleLabel; - LanguageSwitchViewTitleLabel = nullptr; - - delete p_LanguageSwitchListAdapter; - p_LanguageSwitchListAdapter = nullptr; - - delete LanguageList; - LanguageList = nullptr; - - delete LanguageSwitchScrollView; - LanguageSwitchScrollView = nullptr; - - if(group) + container_->RemoveAll(); + if (LanguageSwitchScrollView != nullptr) + { + LanguageSwitchScrollView->RemoveAll(); + if (LanguageSwitchViewTitleLabel) + { + delete LanguageSwitchViewTitleLabel; + LanguageSwitchViewTitleLabel = nullptr; + } + if (p_LanguageSwitchListAdapter) + { + delete p_LanguageSwitchListAdapter; + p_LanguageSwitchListAdapter = nullptr; + } + if (LanguageList) + { + delete LanguageList; + LanguageList = nullptr; + } + delete LanguageSwitchScrollView; + LanguageSwitchScrollView = nullptr; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::ClearAll LanguageSwitchScrollView over!!"); + } + if (group != nullptr) { group->RemoveAll(); - - delete button_cancel; - button_cancel = nullptr; - - delete button_ensure; - button_ensure = nullptr; - - delete LanguageSwitchViewhintLabel; - LanguageSwitchViewhintLabel = nullptr; + if (button_cancel) + { + delete button_cancel; + button_cancel = nullptr; + } + if (button_ensure) + { + delete button_ensure; + button_ensure = nullptr; + } + if (LanguageSwitchViewhintLabel) + { + delete LanguageSwitchViewhintLabel; + LanguageSwitchViewhintLabel = nullptr; + } + delete group; + group = nullptr; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::ClearAll group over!!"); } + delete container_; + container_ = nullptr; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::ClearAll over!!"); } } @@ -101,7 +122,7 @@ namespace OHOS return false; } LanguageSwitchScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); - LanguageSwitchScrollView->SetScrollBlankSize(MAX_LANGUAGE_LIST_SCROLLBLANKSIZE); + // LanguageSwitchScrollView->SetScrollBlankSize(MAX_LANGUAGE_LIST_SCROLLBLANKSIZE); LanguageSwitchScrollView->SetHorizontalScrollState(false); LanguageSwitchScrollView->SetTouchable(true); LanguageSwitchScrollView->SetDraggable(true); @@ -149,15 +170,18 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::LanguageList is nullptr!"); return false; } - LanguageList->SetPosition(LANGUAGE_LIST_X, LANGUAGE_LIST_Y, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); + LanguageList->SetPosition(LANGUAGE_LIST_X, LANGUAGE_LIST_Y, HORIZONTAL_RESOLUTION, 346); LanguageList->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000); - LanguageList->SetScrollBlankSize(MAX_LANGUAGE_LIST_SCROLLBLANKSIZE); - LanguageList->EnableAutoAlign(true); // 设置此列表的自动对齐状态。当滚动停止时,子视图被选中,其位置自动与预设位置对齐 - LanguageList->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。 - LanguageList->SetMaxScrollDistance(MAX_SCROLL_DIS); // 设置手指抬起屏幕后的最大滚动距离。 - LanguageList->SetReboundSize(MAX_REBOUND_SIZE); - LanguageList->SetRotateFactor(ROTATEFACTORVALUE); + LanguageList->EnableAutoAlign(true); // 设置此列表的自动对齐状态。当滚动停止时,子视图被选中,其位置自动与预设位置对齐 + LanguageList->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。 + LanguageList->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。 + LanguageList->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/ + LanguageList->SetReboundSize(30); + LanguageList->SetScrollBlankSize(20); + LanguageList->SetStartIndex(0); FocusManager::GetInstance()->RequestFocus(LanguageList); + FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP); + LanguageList->SetRotateFactor(1.0); return true; } @@ -171,13 +195,13 @@ namespace OHOS } } - void LanguageSwitchView::show_hint_group(std::string code,bool data) + void LanguageSwitchView::show_hint_group(std::string code, bool data) { group->SetVisible(data); RootView::GetInstance()->Invalidate(); - if(data) + if (data) { - hint_id_code=code; + hint_id_code = code; } return; } @@ -187,18 +211,16 @@ namespace OHOS return button_cancel; } - UIButton *LanguageSwitchView::GetLanguagebutton_ensure(void) { return button_ensure; } - //Take effect after restart + // Take effect after restart void LanguageSwitchView::InithintView() { - group = new UIViewGroup(); - if(group==nullptr) + if (group == nullptr) { return; } @@ -207,13 +229,13 @@ namespace OHOS group->SetDraggable(true); group->SetOnDragListener(presenter_); - - if (LanguageSwitchViewhintLabel == nullptr) { - LanguageSwitchViewhintLabel = new UILabel(); + if (LanguageSwitchViewhintLabel == nullptr) + { + LanguageSwitchViewhintLabel = new UILabel(); } - LanguageSwitchViewhintLabel->SetPosition(47, 194); // widget's left position and top position - LanguageSwitchViewhintLabel->Resize(370, 60); // widget's width and height - LanguageSwitchViewhintLabel->SetViewId("label1");// Set style + LanguageSwitchViewhintLabel->SetPosition(47, 194); // widget's left position and top position + LanguageSwitchViewhintLabel->Resize(370, 60); // widget's width and height + LanguageSwitchViewhintLabel->SetViewId("label1"); // Set style LanguageSwitchViewhintLabel->SetStyle(STYLE_TEXT_FONT, 30); LanguageSwitchViewhintLabel->SetText("Take effect after restart"); @@ -225,13 +247,11 @@ namespace OHOS group->Add(LanguageSwitchViewhintLabel); LanguageSwitchViewhintLabel->SetVisible(true); - - button_cancel = new UIButton(); if (button_cancel == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemShutdown::new button_cancel fail!"); - return ; + return; } button_cancel->SetPosition(97, 299, 130, 130); button_cancel->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); @@ -247,7 +267,7 @@ namespace OHOS if (button_ensure == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemShutdown::new button_ensure fail!"); - return ; + return; } button_ensure->SetPosition(240, 299, 130, 130); button_ensure->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); @@ -262,15 +282,18 @@ namespace OHOS button_cancel->SetOnClickListener(presenter_); button_ensure->SetOnClickListener(presenter_); group->SetVisible(false); - } - void LanguageSwitchView::OnStart() { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::OnStart"); View::OnStart(); SetContainerView(new UIViewGroup()); + if (GetContainer() == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetContainerView fail!!"); + return; + } container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); container_->SetTouchable(true); container_->SetDraggable(true); @@ -303,12 +326,6 @@ namespace OHOS { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::OnStop"); View::OnStop(); - if (container_ != nullptr) - { - container_->RemoveAll(); - delete container_; - container_ = nullptr; - } RootView::GetInstance()->ClearOnKeyActListener(); FocusManager::GetInstance()->ClearFocus(); ClearAll(); diff --git a/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemView.h b/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemView.h index 14afb967d..16239faee 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemView.h @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-03-30 18:29:39 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-08-28 19:43:28 + * @LastEditTime: 2024-09-19 20:07:09 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemView.h */ #ifndef SYSTEM_VIEW_H @@ -111,9 +111,10 @@ namespace OHOS void NeedToUpdateImageinit(void); UILabelExt *Title{nullptr}; // 标题 UIScrollView *SystemScrollView[MAX_SYSTEMVIEWID]{nullptr}; - UILabelButtonExt *SystemViewLabelButton[5]{nullptr}; - UILabelExt *SystemViewLabel[5]{nullptr}; + UILabelButtonExt *SystemViewLabelButton[7]{nullptr}; + UILabelExt *SystemViewLabel[7]{nullptr}; UIImageView *NeedToUpdateImage{nullptr}; // 提示需要系统更新的icon图片 + UIImageView *temp{nullptr}; bool viewInitStatus{false}; }; } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp index 182c659a2..19dbe79f7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp @@ -39,7 +39,7 @@ namespace OHOS delete Title; Title = nullptr; } - for (int i = 0; i < 5; i++) + for (int i = 0; i < sizeof(SystemViewLabelButton) / sizeof(SystemViewLabelButton[0]); i++) { if (SystemViewLabelButton[i] != nullptr) { @@ -58,6 +58,11 @@ namespace OHOS delete NeedToUpdateImage; NeedToUpdateImage = nullptr; } + if (temp != nullptr) + { + delete temp; + temp = nullptr; + } delete SystemScrollView[SYSTEMVIEW]; SystemScrollView[SYSTEMVIEW] = nullptr; } @@ -131,7 +136,7 @@ namespace OHOS bool SystemView::CreateSystemViewLabel(void) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemViewLabel"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemViewLabel"); LabelConfig labelConfig = { .left = 83, .top = 50, @@ -195,7 +200,7 @@ namespace OHOS bool SystemView::CreateSystemViewLabelButton(void) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemViewLabelButton"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemViewLabelButton"); struct ButtonSetup { int y; @@ -234,7 +239,7 @@ namespace OHOS bool SystemView::CreateSystemScrollView(void) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemScrollView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemScrollView"); SystemScrollView[SYSTEMVIEW] = new UIScrollView(); if (SystemScrollView[SYSTEMVIEW] == nullptr) { @@ -243,12 +248,14 @@ namespace OHOS } SystemScrollView[SYSTEMVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); SystemScrollView[SYSTEMVIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - SystemScrollView[SYSTEMVIEW]->SetScrollBlankSize(75); - SystemScrollView[SYSTEMVIEW]->SetReboundSize(35); + SystemScrollView[SYSTEMVIEW]->SetScrollBlankSize(30); + SystemScrollView[SYSTEMVIEW]->SetReboundSize(30); SystemScrollView[SYSTEMVIEW]->SetDirection(1); SystemScrollView[SYSTEMVIEW]->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。 SystemScrollView[SYSTEMVIEW]->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。 - SystemScrollView[SYSTEMVIEW]->RequestFocus(); + SystemScrollView[SYSTEMVIEW]->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/ + FocusManager::GetInstance()->RequestFocus(SystemScrollView[SYSTEMVIEW]); + FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP); SystemScrollView[SYSTEMVIEW]->SetRotateFactor(1.0); SystemScrollView[SYSTEMVIEW]->SetOnDragListener(presenter_); SystemScrollView[SYSTEMVIEW]->SetTouchable(true); @@ -279,12 +286,22 @@ namespace OHOS void SystemView::CreateSystemView(void) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemView"); if (!CreateSystemScrollView() || !CreateSystemViewLabelButton() || !CreateSystemViewLabel()) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemView fail!!"); return; } + if (temp == nullptr) + { + temp = new UIImageView(); + if (temp == nullptr) + { + return; + } + temp->SetPosition(43, 960, 380, 40); + SystemScrollView[SYSTEMVIEW]->Add(temp); + } viewInitStatus = true; } -- 2.17.1