设置界面优化,#810,解决 设置-界面显示上部分有空白,点进去就有,删除空白bug 1015/1
authorluozheng <1732036298@qq.com>
Wed, 25 Sep 2024 07:02:17 +0000 (15:02 +0800)
committerluozheng <1732036298@qq.com>
Wed, 25 Sep 2024 07:02:17 +0000 (15:02 +0800)
code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingItemView.cpp
code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingModel.cpp
code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingView.cpp

index 698c286..b019963 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-27 19:48:49
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-20 15:44:27
+ * @LastEditTime: 2024-09-25 14:49:58
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingItemView.cpp
  */
 
 #include "systemupdate/include/SystemUpdateModel.h"
 namespace OHOS
 {
-    static constexpr int16_t SETTING_ICON_X = 19;
+    static constexpr int16_t SETTING_ICON_X = 19 + 43;
     static constexpr int16_t SETTING_SICON_Y = 19;
     static constexpr int16_t SETTING_SICON_W = 62;
     static constexpr int16_t SETTING_SICON_H = 62;
 
-    static constexpr int16_t SETTINGLABELEXT_X = 115;
+    static constexpr int16_t SETTINGLABELEXT_X = 115 + 43;
     static constexpr int16_t SETTINGLABELEXT_Y = 33;
     static constexpr int16_t SETTINGLABELEXT_W = 180;
     static constexpr int16_t SETTINGLABELEXT_H = 35;
+    static constexpr int16_t SETTINGLABELEXT_X2 = 83;
+    static constexpr int16_t SETTINGLABELEXT_Y2 = 50;
+    static constexpr int16_t SETTINGLABELEXT_W2 = 300;
+    static constexpr int16_t SETTINGLABELEXT_H2 = 35;
     static constexpr int16_t SETTINGLABELEXT_TEXT_FONT = 30;
     static constexpr int16_t SETTINGLABELEXT_LINE_HEIGHT = 35;
     static constexpr int16_t SETTINGLABELEXT_ROLLSPEED = 70;
 
-    static constexpr int16_t SETTINGLABELBUTTONEXT_X = 0;
+    static constexpr int16_t SETTINGLABELBUTTONEXT_X = 43;
     static constexpr int16_t SETTINGLABELBUTTONEXT_Y = 0;
     static constexpr int16_t SETTINGLABELBUTTONEXT_W = 380;
     static constexpr int16_t SETTINGLABELBUTTONEXT_H = 100;
@@ -33,10 +37,9 @@ namespace OHOS
 
     SettingItemView::SettingItemView()
     {
-        SetPosition(43, 120, 380, 120);
+        SetPosition(43, 120, 466, 120);
         SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
         SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
-        SetTouchable(true);
         SetUpChild();
         Add(&settingLabelButtonExt);
         Add(&settingLabelExt);
@@ -45,17 +48,44 @@ namespace OHOS
 
     SettingItemView::~SettingItemView()
     {
-        // Remove(&settingLabelButtonExt);
-        // Remove(&settingLabelExt);
-        // Remove(&Icon);
         RemoveAll();
     }
 
     void SettingItemView::SetItemInfo(const SettingItem itemInfo)
     {
         sItemInfo = itemInfo;
-        Icon.SetSrc(itemInfo.icon);
-        settingLabelExt.SetTextId(itemInfo.textId);
+        if (itemInfo.hasSecondMenu)
+        {
+            Icon.SetVisible(true);
+            Icon.SetSrc(itemInfo.icon);
+            settingLabelExt.SetVisible(true);
+            settingLabelExt.SetPosition(SETTINGLABELEXT_X, SETTINGLABELEXT_Y, SETTINGLABELEXT_W, SETTINGLABELEXT_H);
+            settingLabelExt.SetTextId(itemInfo.textId);
+            settingLabelExt.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+            settingLabelButtonExt.SetVisible(true);
+            SetHeight(120);
+            SetTouchable(true);
+        }
+        else
+        {
+
+            Icon.SetVisible(false);
+            if (itemInfo.viewId == VIEW_INVALID && itemInfo.textId == STR_MAX_ID)
+            {
+                settingLabelExt.SetVisible(false);
+                SetHeight(60);
+            }
+            else
+            {
+                settingLabelExt.SetVisible(true);
+                SetHeight(120);
+            }
+            settingLabelExt.SetPosition(SETTINGLABELEXT_X2, SETTINGLABELEXT_Y2, SETTINGLABELEXT_W2, SETTINGLABELEXT_H2);
+            settingLabelExt.SetTextId(itemInfo.textId);
+            settingLabelExt.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+            settingLabelButtonExt.SetVisible(false);
+            SetTouchable(false);
+        }
 
         if (itemInfo.textId == STR_SYSTEM && SystemUpdateModel::GetInstance().IsLatestVersion() == false) // 如果不是最新系统版本出现小圆点
         {
@@ -67,9 +97,6 @@ namespace OHOS
     {
         Icon.SetPosition(SETTING_ICON_X, SETTING_SICON_Y, SETTING_SICON_W, SETTING_SICON_H);
         Icon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
-        // Icon.SetAutoEnable(false);
-        // Icon.SetResizeMode(UIImageView::SCALE_DOWN);
-        // Icon.SetStyle(STYLE_BORDER_RADIUS, 100);
 
         settingLabelExt.SetPosition(SETTINGLABELEXT_X, SETTINGLABELEXT_Y, SETTINGLABELEXT_W, SETTINGLABELEXT_H);
         settingLabelExt.SetStyle(STYLE_TEXT_FONT, SETTINGLABELEXT_TEXT_FONT);
index 1bfbc36..6e09757 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-02-18 09:09:13
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-14 19:58:19
+ * @LastEditTime: 2024-09-25 14:20:13
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingModel.cpp
  */
 #include "settings/include/SettingModel.h"
@@ -30,6 +30,7 @@ namespace OHOS
     void SettingModel::InitSettingItem()
     {
         int index = 0;
+        settings[index++] = {VIEW_SETTING, nullptr, STR_SETTINGS, false};//标题:设置
         settings[index++] = {VIEW_DISPLAY_BRIGHTNESS, PNG_SETTINGS_DISPLAY_BRIGHTNESS, STR_SCREEN_AND_BRIGHTNESS, true};
         settings[index++] = {VIEW_NETWORKANDCALL, PNG_SETTINGS_NETWORKANDCALL, STR_NETWORKANDCALL, true};
         settings[index++] = {VIEW_CLASSIC_BLUETOOTH, PNG_SETTINGS_BLUETOOTH, STR_BLUETOOTH, true};
@@ -41,7 +42,7 @@ namespace OHOS
         settings[index++] = {VIEW_SET_DIAL_STYLE, PNG_SETTINGS_CHANGEDIAL_IMAGE, STR_DIAL_BROWSING_SPECIAL_EFFECTS, true};
         settings[index++] = {VIEW_SAVEELE, PNG_SETTINGS_SAVEELE_IMAGE, STR_POWER_SAVE_MODE, true};
         settings[index++] = {VIEW_SYSTEM, PNG_SETTINGS_SYSTEM, STR_SYSTEM, true};
-        // settings[index++] = {VIEW_REBOOTANDSHUTDOWN, PNG_SETTINGS_SHUTDOWN_AND_RESTART, STR_SHUTDOWN_AND_RESTART, true};
+        settings[index++] = {VIEW_INVALID, nullptr, STR_MAX_ID, false};
         usedLen = index;
     }
 
index 9bd7ca5..94b7347 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-07-12 09:55:29
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-20 20:42:55
+ * @LastEditTime: 2024-09-25 14:53:50
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingView.cpp
  */
 
@@ -17,12 +17,12 @@ namespace OHOS
     static constexpr int16_t SETTING_TITLE_POSITION_X = 83;
     static constexpr int16_t SETTING_TITLE_POSITION_Y = 52;
     static constexpr int16_t SETTING_TITLE_SIZE_WIDTH = 300;
-    static constexpr int16_t SETTING_TITLE_SIZE_HEIGHT = 40;
+    static constexpr int16_t SETTING_TITLE_SIZE_HEIGHT = 35;
     static constexpr uint8_t SETTINGS_TITLE_FONT_SIZE = 30;   // 字体大小
     static constexpr uint8_t SETTINGS_TITLE_FONT_HEIGHT = 35; // 字体高度
     /* --------------------------------- 设置List --------------------------------- */
-    static constexpr int16_t SETTING_LIST_POSITION_X = 43;
-    static constexpr int16_t SETTING_LIST_POSITION_Y = 120;
+    static constexpr int16_t SETTING_LIST_POSITION_X = 0;
+    static constexpr int16_t SETTING_LIST_POSITION_Y = 0;
     static constexpr int16_t SETTING_SCROLLBLANKSIZE = 50; // 设置此滚动视图的空白大小。
     static constexpr int16 MAX_SCR_DIS = 1000;
     static constexpr int16 LIST_POS = 20;
@@ -50,11 +50,6 @@ namespace OHOS
                 if (scrollView != nullptr)
                 {
                     scrollView->RemoveAll();
-                    if (title != nullptr)
-                    {
-                        delete title;
-                        title = nullptr;
-                    }
                     if (listAdapter != nullptr)
                     {
                         delete listAdapter;
@@ -78,13 +73,16 @@ namespace OHOS
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::CreateSettingView");
         /* -------------------------------------------------------------------------- */
-        scrollView = new UIScrollView();
         if (scrollView == nullptr)
         {
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::scrollView is nullptr");
-            return;
+            scrollView = new UIScrollView();
+            if (scrollView == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::scrollView is new fail!!");
+                return;
+            }
         }
-        scrollView->SetPosition(0, 0, 466, 466);
+        scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
         scrollView->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
         scrollView->SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
         scrollView->SetHorizontalScrollState(false);
@@ -92,51 +90,38 @@ namespace OHOS
         scrollView->SetThrowDrag(true);
         scrollView->SetOnDragListener(presenter_);
         /* -------------------------------------------------------------------------- */
-        title = new UILabelExt();
-        if (title == nullptr)
-        {
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::title is nullptr");
-            return;
-        }
-        title->SetPosition(SETTING_TITLE_POSITION_X, SETTING_TITLE_POSITION_Y, SETTING_TITLE_SIZE_WIDTH, SETTING_TITLE_SIZE_HEIGHT);
-        title->SetTextId(STR_SETTINGS); /*设置*/
-        title->SetStyle(STYLE_TEXT_FONT, SETTINGS_TITLE_FONT_SIZE);
-        title->SetStyle(STYLE_LINE_HEIGHT, SETTINGS_TITLE_FONT_HEIGHT);
-        title->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
-        title->SetRollSpeed(ROLLSPEED);
-        title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTINGS_TITLE_FONT_SIZE);
-        title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-        title->SetStyle(STYLE_TEXT_OPA, OPA_OPAQUE);
-        title->SetStyle(STYLE_TEXT_COLOR, Color::White().full);
-        title->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
-        title->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
-
-        listAdapter = new SettingAdapter();
         if (listAdapter == nullptr)
         {
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::listAdapter is nullptr");
-            return;
+            listAdapter = new SettingAdapter();
+            if (listAdapter == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::listAdapter is new fail!!");
+                return;
+            }
         }
         listAdapter->SetItemClickListener(presenter_);
-        contentList = new UIList(UIList::VERTICAL);
+        /* -------------------------------------------------------------------------- */
         if (contentList == nullptr)
         {
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::contentList is nullptr");
-            return;
+            contentList = new UIList(UIList::VERTICAL);
+            if (contentList == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::contentList is new fail!!");
+                return;
+            }
         }
-        contentList->SetPosition(SETTING_LIST_POSITION_X, SETTING_LIST_POSITION_Y, HORIZONTAL_RESOLUTION, 346);
+        contentList->SetPosition(SETTING_LIST_POSITION_X, SETTING_LIST_POSITION_Y, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
         contentList->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
         contentList->EnableAutoAlign(true);      // 设置此列表的自动对齐状态。当滚动停止时,子视图被选中,其位置自动与预设位置对齐
         contentList->SetThrowDrag(true);         // 设置手指抬起屏幕后是否继续滚动。
         contentList->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。
         contentList->SetSwipeACCLevel(800);      /*设置手指抬起屏幕后的补偿距离。*/
-        contentList->SetReboundSize(30);
-        contentList->SetScrollBlankSize(30);
+        // contentList->SetReboundSize(30);
+        // contentList->SetScrollBlankSize(30);
         FocusManager::GetInstance()->RequestFocus(contentList);
         FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP);
         contentList->SetRotateFactor(1.0);
         /* ----------------------------------- Add ---------------------------------- */
-        scrollView->Add(title);
         scrollView->Add(contentList);
         container_->Add(scrollView);
     }