From 7421dde441073a5637bf5dc3c551a9d1430b10e3 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Thu, 20 Nov 2025 18:32:31 +0800 Subject: [PATCH] =?utf8?q?fd272:=E8=A7=A3=E5=86=B3=E6=81=AF=E5=B1=8F?= =?utf8?q?=E5=90=8Eapplist=E5=88=97=E8=A1=A8=E8=A1=A8=E5=86=A0=E8=81=9A?= =?utf8?q?=E7=84=A6=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98=EF=BC=8C=E4=BF=AE?= =?utf8?q?=E5=A4=8D=E7=9B=B4=E7=BA=BF=E5=88=97=E8=A1=A8=E4=B8=AD=E8=8B=B1?= =?utf8?q?=E6=96=87=E5=88=87=E6=8D=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/applist/include/AppItemView.h | 4 +-- .../nativeui/applist/include/ApplistView.h | 2 ++ .../nativeui/applist/src/AppItemView.cpp | 2 +- .../nativeui/applist/src/ApplistPresenter.cpp | 3 ++ .../nativeui/applist/src/ApplistView.cpp | 28 ++++++++++++++++++- 5 files changed, 35 insertions(+), 4 deletions(-) diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/include/AppItemView.h b/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/include/AppItemView.h index eebb4afb1..f295ef2df 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/include/AppItemView.h +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/include/AppItemView.h @@ -33,8 +33,8 @@ private: AppItemView &operator = (const AppItemView &); UIImageView icon_; - UILabel label_; - AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr, nullptr }; + UILabelExt label_; + AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr, nullptr, nullptr, 0 }; }; class HexagonsItemView : public UIImageView { diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/include/ApplistView.h b/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/include/ApplistView.h index 8cd81944e..0a4ad1bbd 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/include/ApplistView.h +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/include/ApplistView.h @@ -120,6 +120,8 @@ public: void RefreshAppList(void); void StartFootBallAnimator(); void ResumeWaterFallDraggable(); + //用来在恢复applist时,请求焦点 + void ApplistOnResumeRequestFocus(void); private: /* for list style */ diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/src/AppItemView.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/src/AppItemView.cpp index 4b6fa81e7..87b35c580 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/src/AppItemView.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/src/AppItemView.cpp @@ -57,7 +57,7 @@ namespace OHOS { { itemInfo_ = itemInfo; icon_.SetSrc(itemInfo.iconSmall); - label_.SetText(itemInfo.label); + label_.SetTextId(itemInfo_.TextId); } AppViewId AppItemView::GetViewId() diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/src/ApplistPresenter.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/src/ApplistPresenter.cpp index d18c039ee..1f0f12b05 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/src/ApplistPresenter.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/src/ApplistPresenter.cpp @@ -6,6 +6,7 @@ */ #include "applist/include/ApplistPresenter.h" +#include "applist/include/ApplistView.h" #include "ability_manager.h" #include "securec.h" #include "components/ui_hexagons_list.h" @@ -58,6 +59,8 @@ REGIST_SLICE(VIEW_APPLIST, ApplistView, ApplistPresenter); } else if (GetCurrentStyle() == AppListStyle::WATERFALL_STYLE) { view_->ResumeWaterFallDraggable(); } + //申请焦点 + view_->ApplistOnResumeRequestFocus(); RootView::GetInstance()->SetOnKeyActListener(KeyInputListener::GetInstance()); } diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/src/ApplistView.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/src/ApplistView.cpp index 244234855..52a49f9a1 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/src/ApplistView.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/applist/src/ApplistView.cpp @@ -357,7 +357,7 @@ void ApplistView::ArcScaleListStyleOnStart(void) ArcScaleList_->EnableAutoAlign(true); ArcScaleList_->SetItemSpace(20); ArcScaleList_->SetSelectPosition(ARC_SCALE_LIST_HEIGHT / 2); - ArcScaleList_->SetRotateFactor(1.0); + ArcScaleList_->SetRotateFactor(5.0); ArcScaleList_->RequestFocus(); ArcScaleList_->RefreshList(); @@ -886,6 +886,8 @@ void ApplistView::ListStyleOnStart() contentList_->SetScrollStateListener(presenter_); contentList_->SetMaxScrollDistance(MAX_SCROLL_DIS); contentList_->SetYScrollBarVisible(true); + contentList_->SetRotateFactor(5.0); + contentList_->RequestFocus(); dragListener_ = new AppListOnDragListener(); if (dragListener_ == nullptr) { @@ -1097,4 +1099,28 @@ void FootballAnimatorCallback::Callback(UIView *view) int16_t angle = EasingEquation::LinearEaseNone(0, 270, animator_->GetRunTime(), animator_->GetTime()); footView->RotatePlanes(angle, rotateStart, rotateEnd); } + +void ApplistView::ApplistOnResumeRequestFocus(void) +{ + if(nullptr != contentList_) + { + contentList_->RequestFocus();//直线列表 + } + if(nullptr != ArcScaleList_) + { + ArcScaleList_->RequestFocus();//弧形列表 + } + if(nullptr != hexagonsList_) + { + hexagonsList_->RequestFocus();//蜂窝 + } + if(nullptr != CircleListScrollView) + { + CircleListScrollView->RequestFocus();//拨号盘 + } + if(nullptr != waterfallList_) + { + waterfallList_->RequestFocus();//瀑布流 + } +} } -- 2.17.1