harmonyos-best-practices-mcp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/README.md +121 -0
  2. package/data/docs/bpta-2in1-window-shape.md +296 -0
  3. package/data/docs/bpta-abckitts-implements-instrumentation.md +1279 -0
  4. package/data/docs/bpta-add-watermark.md +379 -0
  5. package/data/docs/bpta-ads-jump.md +67 -0
  6. package/data/docs/bpta-agent.md +472 -0
  7. package/data/docs/bpta-always-on-market-watch.md +703 -0
  8. package/data/docs/bpta-analysis-of-image-blurring.md +231 -0
  9. package/data/docs/bpta-analyze-memory-problem.md +17 -0
  10. package/data/docs/bpta-animation-frame.md +28 -0
  11. package/data/docs/bpta-antipeep-protection.md +291 -0
  12. package/data/docs/bpta-app-architecture-overview.md +25 -0
  13. package/data/docs/bpta-app-asset-protection-design.md +277 -0
  14. package/data/docs/bpta-app-code-ob.md +180 -0
  15. package/data/docs/bpta-app-concurrency-design.md +1189 -0
  16. package/data/docs/bpta-app-data-security.md +397 -0
  17. package/data/docs/bpta-app-icon-configuration.md +226 -0
  18. package/data/docs/bpta-app-privacy-protection.md +295 -0
  19. package/data/docs/bpta-application-aspect-programming-design.md +675 -0
  20. package/data/docs/bpta-application-cold-start-optimization.md +1397 -0
  21. package/data/docs/bpta-application-continue-progess.md +285 -0
  22. package/data/docs/bpta-application-gesture-share.md +468 -0
  23. package/data/docs/bpta-application-knock-file-share.md +263 -0
  24. package/data/docs/bpta-application-knock-video-share.md +552 -0
  25. package/data/docs/bpta-application-latency-optimization-cases.md +615 -0
  26. package/data/docs/bpta-application-power-analysis.md +15 -0
  27. package/data/docs/bpta-application-power-optimization.md +12 -0
  28. package/data/docs/bpta-application-power-test.md +52 -0
  29. package/data/docs/bpta-application-track-practice.md +595 -0
  30. package/data/docs/bpta-arkts-high-performance.md +464 -0
  31. package/data/docs/bpta-arkts-js-memory-analysis.md +111 -0
  32. package/data/docs/bpta-arkts-language.md +18 -0
  33. package/data/docs/bpta-arkweb-component-security.md +1134 -0
  34. package/data/docs/bpta-arkweb_rendering_framework.md +412 -0
  35. package/data/docs/bpta-aspect-implements-aop.md +505 -0
  36. package/data/docs/bpta-audio-and-video.md +30 -0
  37. package/data/docs/bpta-audio-cast.md +460 -0
  38. package/data/docs/bpta-audio-focus-management.md +862 -0
  39. package/data/docs/bpta-audio-in-ear-monitor.md +803 -0
  40. package/data/docs/bpta-audio-playback-series.md +16 -0
  41. package/data/docs/bpta-audio-record-base-on-audiocapturer.md +188 -0
  42. package/data/docs/bpta-audio-record-base-on-avrecorder-arkts.md +179 -0
  43. package/data/docs/bpta-audio-record-base-on-avrecorder.md +207 -0
  44. package/data/docs/bpta-audio-record-base-on-avscreencapture.md +165 -0
  45. package/data/docs/bpta-audio-record-base-on-ohaudio.md +162 -0
  46. package/data/docs/bpta-audio-record-overview.md +34 -0
  47. package/data/docs/bpta-audio-record.md +16 -0
  48. package/data/docs/bpta-audio-ripple-animation.md +198 -0
  49. package/data/docs/bpta-audio-video-synchronization.md +508 -0
  50. package/data/docs/bpta-audio-video.md +15 -0
  51. package/data/docs/bpta-automated-testing-frameworks.md +481 -0
  52. package/data/docs/bpta-avplayer-basic-control.md +533 -0
  53. package/data/docs/bpta-avplayer-embeded-network-video.md +486 -0
  54. package/data/docs/bpta-avplayer-embeded-short-video.md +512 -0
  55. package/data/docs/bpta-avplayer-long-video.md +907 -0
  56. package/data/docs/bpta-avplayer-short-video.md +158 -0
  57. package/data/docs/bpta-avplayer-video-practices.md +15 -0
  58. package/data/docs/bpta-avscreencapture-for-screen-recording.md +1121 -0
  59. package/data/docs/bpta-back-task-implement.md +317 -0
  60. package/data/docs/bpta-background-blur.md +316 -0
  61. package/data/docs/bpta-background-sensors-baned-analysis.md +93 -0
  62. package/data/docs/bpta-best-practices-long-list.md +891 -0
  63. package/data/docs/bpta-best-practices-overview.md +48 -0
  64. package/data/docs/bpta-bluetooth-low-energy.md +905 -0
  65. package/data/docs/bpta-buffer-mode-transcoding.md +728 -0
  66. package/data/docs/bpta-buffer-power-optimization.md +224 -0
  67. package/data/docs/bpta-camera-shot2see.md +368 -0
  68. package/data/docs/bpta-card-update-and-data-interaction.md +670 -0
  69. package/data/docs/bpta-carousel-graphic-works.md +379 -0
  70. package/data/docs/bpta-cell-phone.md +13 -0
  71. package/data/docs/bpta-click-to-click-response-optimization.md +264 -0
  72. package/data/docs/bpta-click-to-complete-delay-analysis.md +637 -0
  73. package/data/docs/bpta-collaboration-office.md +1178 -0
  74. package/data/docs/bpta-comment-reply-pop-up-window.md +523 -0
  75. package/data/docs/bpta-common-list-flows.md +688 -0
  76. package/data/docs/bpta-common-list-operations.md +828 -0
  77. package/data/docs/bpta-common-network-query.md +784 -0
  78. package/data/docs/bpta-comparative_practice_of_taskpool_and_worker.md +381 -0
  79. package/data/docs/bpta-compatible-scheme.md +11 -0
  80. package/data/docs/bpta-complex-type-pass.md +868 -0
  81. package/data/docs/bpta-component-nesting-optimization.md +421 -0
  82. package/data/docs/bpta-component-reuse-issue-diagnosis-and-analysis.md +637 -0
  83. package/data/docs/bpta-component-reuse.md +1258 -0
  84. package/data/docs/bpta-concurrency-capability.md +23 -0
  85. package/data/docs/bpta-concurrent-optimization.md +369 -0
  86. package/data/docs/bpta-content-creation.md +646 -0
  87. package/data/docs/bpta-continue-cast.md +702 -0
  88. package/data/docs/bpta-continue-data.md +335 -0
  89. package/data/docs/bpta-continue.md +1323 -0
  90. package/data/docs/bpta-control-rendering-range.md +29 -0
  91. package/data/docs/bpta-controlling-background-process-cpu.md +31 -0
  92. package/data/docs/bpta-crash-monitor-practice.md +116 -0
  93. package/data/docs/bpta-cross-domain-solutions-for-web-pages.md +308 -0
  94. package/data/docs/bpta-cross-end-migration.md +13 -0
  95. package/data/docs/bpta-cross-module-reference.md +406 -0
  96. package/data/docs/bpta-cross-platform-compatibility.md +321 -0
  97. package/data/docs/bpta-custom-camera-photo.md +454 -0
  98. package/data/docs/bpta-custom-camera-preview.md +1170 -0
  99. package/data/docs/bpta-custom-camera-video.md +322 -0
  100. package/data/docs/bpta-custom-font-settings.md +354 -0
  101. package/data/docs/bpta-custom-hvigor-plugin.md +159 -0
  102. package/data/docs/bpta-custom-keyboard.md +519 -0
  103. package/data/docs/bpta-customdialog-selection-and-development.md +406 -0
  104. package/data/docs/bpta-dark-mode-adaptation.md +321 -0
  105. package/data/docs/bpta-deal-stride-solution.md +261 -0
  106. package/data/docs/bpta-decrease_pakage_size.md +126 -0
  107. package/data/docs/bpta-delayed-trigger-operation.md +215 -0
  108. package/data/docs/bpta-desktop-shortcuts.md +180 -0
  109. package/data/docs/bpta-detection.md +12 -0
  110. package/data/docs/bpta-developing-high-performance-ui.md +19 -0
  111. package/data/docs/bpta-development-scenarios-for-tabs.md +934 -0
  112. package/data/docs/bpta-dialog-encapsulation.md +201 -0
  113. package/data/docs/bpta-dispose-highly-loaded-component-render.md +352 -0
  114. package/data/docs/bpta-distribute-drag-cast.md +60 -0
  115. package/data/docs/bpta-distributed-pasteboard-cast.md +88 -0
  116. package/data/docs/bpta-distributed-pasteboard.md +314 -0
  117. package/data/docs/bpta-drawing-capability-improve-performance.md +436 -0
  118. package/data/docs/bpta-dynamic-link-library.md +272 -0
  119. package/data/docs/bpta-easygo-parallel.md +402 -0
  120. package/data/docs/bpta-fair-use-animation.md +1693 -0
  121. package/data/docs/bpta-file-transmission-based-on-sfft.md +265 -0
  122. package/data/docs/bpta-file-upload-and-download-performance.md +484 -0
  123. package/data/docs/bpta-foldable-guide.md +205 -0
  124. package/data/docs/bpta-folded-hover.md +202 -0
  125. package/data/docs/bpta-form-kit.md +12 -0
  126. package/data/docs/bpta-frontend-invisible-animation-analysis.md +187 -0
  127. package/data/docs/bpta-full-scenario-collaborative-development.md +13 -0
  128. package/data/docs/bpta-fuzzy-scene-performance-optimization.md +256 -0
  129. package/data/docs/bpta-game-prelaunch-practice.md +175 -0
  130. package/data/docs/bpta-general-comments.md +17 -0
  131. package/data/docs/bpta-gestures-practice.md +619 -0
  132. package/data/docs/bpta-global-state-management-state-store.md +472 -0
  133. package/data/docs/bpta-gpu-acceleration-practices.md +11 -0
  134. package/data/docs/bpta-graphic-drawing-practices.md +13 -0
  135. package/data/docs/bpta-grid-based-on-scrollcomponents.md +1112 -0
  136. package/data/docs/bpta-grid-drag-swap.md +725 -0
  137. package/data/docs/bpta-hadss_dialoghub.md +786 -0
  138. package/data/docs/bpta-harmony-application-security.md +1253 -0
  139. package/data/docs/bpta-hdrtosdr.md +439 -0
  140. package/data/docs/bpta-hdrvivid.md +700 -0
  141. package/data/docs/bpta-high-cpu-load-analysis.md +113 -0
  142. package/data/docs/bpta-high-performance-json-parsing.md +263 -0
  143. package/data/docs/bpta-high-performance-protobuf-parsing.md +259 -0
  144. package/data/docs/bpta-hmos-live-stream-audio-call.md +140 -0
  145. package/data/docs/bpta-hmos-live-stream-solution.md +495 -0
  146. package/data/docs/bpta-hmrouter.md +659 -0
  147. package/data/docs/bpta-hopping.md +60 -0
  148. package/data/docs/bpta-hwc-self-rendering-layer-analysis.md +77 -0
  149. package/data/docs/bpta-image-processing-practices.md +13 -0
  150. package/data/docs/bpta-image-to-video-synthesis.md +459 -0
  151. package/data/docs/bpta-image-white-lump-solution.md +282 -0
  152. package/data/docs/bpta-image_get_and_save.md +120 -0
  153. package/data/docs/bpta-implement-timeline-based-on-canvas.md +493 -0
  154. package/data/docs/bpta-implementing-image-filters.md +406 -0
  155. package/data/docs/bpta-implementing-image-resizable.md +270 -0
  156. package/data/docs/bpta-improve-layout-performance.md +547 -0
  157. package/data/docs/bpta-improve-running-efficiency.md +187 -0
  158. package/data/docs/bpta-improve_grid_performance.md +268 -0
  159. package/data/docs/bpta-input-method-framework.md +12 -0
  160. package/data/docs/bpta-intent-recommend-practice.md +313 -0
  161. package/data/docs/bpta-js-leak-watcher.md +153 -0
  162. package/data/docs/bpta-kernel-memory-analysis.md +38 -0
  163. package/data/docs/bpta-keyboard-layout-adapt.md +725 -0
  164. package/data/docs/bpta-landscape-and-portrait-development.md +947 -0
  165. package/data/docs/bpta-layered-architecture-design.md +82 -0
  166. package/data/docs/bpta-lazyforeach-optimization.md +217 -0
  167. package/data/docs/bpta-link-between-apps-overview.md +99 -0
  168. package/data/docs/bpta-list-based-on-scrollcomponents.md +1643 -0
  169. package/data/docs/bpta-lite-wearable-guide.md +1899 -0
  170. package/data/docs/bpta-live-form-development-practice.md +544 -0
  171. package/data/docs/bpta-live-streaming-optimization.md +397 -0
  172. package/data/docs/bpta-local-file-and-data-multithreaded-io.md +367 -0
  173. package/data/docs/bpta-local-file.md +11 -0
  174. package/data/docs/bpta-lock-screen-immersive-live-window.md +473 -0
  175. package/data/docs/bpta-long-snapshot-practice.md +1046 -0
  176. package/data/docs/bpta-low-power-consumption-of-background-tasks.md +14 -0
  177. package/data/docs/bpta-low-power-consumption-of-foreground-tasks.md +14 -0
  178. package/data/docs/bpta-low-power-design-in-dark-mode.md +418 -0
  179. package/data/docs/bpta-ltpo-description.md +323 -0
  180. package/data/docs/bpta-maleoon-gpu-best-practices.md +1297 -0
  181. package/data/docs/bpta-malloc-dispatch-table.md +144 -0
  182. package/data/docs/bpta-managing-audio-input-devices.md +350 -0
  183. package/data/docs/bpta-managing-audio-output-devices.md +399 -0
  184. package/data/docs/bpta-mate-book-fold.md +229 -0
  185. package/data/docs/bpta-matetv-guide.md +223 -0
  186. package/data/docs/bpta-matext-guide.md +269 -0
  187. package/data/docs/bpta-memory-basic-knowledge.md +71 -0
  188. package/data/docs/bpta-memory-optimization.md +545 -0
  189. package/data/docs/bpta-modular-design.md +282 -0
  190. package/data/docs/bpta-multi-device-adaptive-layout.md +775 -0
  191. package/data/docs/bpta-multi-device-adaptive.md +11 -0
  192. package/data/docs/bpta-multi-device-camera.md +584 -0
  193. package/data/docs/bpta-multi-device-collaboration.md +19 -0
  194. package/data/docs/bpta-multi-device-component-layout.md +190 -0
  195. package/data/docs/bpta-multi-device-design-principles.md +26 -0
  196. package/data/docs/bpta-multi-device-function.md +99 -0
  197. package/data/docs/bpta-multi-device-hardware.md +12 -0
  198. package/data/docs/bpta-multi-device-ide.md +124 -0
  199. package/data/docs/bpta-multi-device-interaction.md +11 -0
  200. package/data/docs/bpta-multi-device-layout-overview.md +47 -0
  201. package/data/docs/bpta-multi-device-overview.md +340 -0
  202. package/data/docs/bpta-multi-device-page-layout.md +699 -0
  203. package/data/docs/bpta-multi-device-page.md +19 -0
  204. package/data/docs/bpta-multi-device-resource.md +122 -0
  205. package/data/docs/bpta-multi-device-responsive-layout.md +1274 -0
  206. package/data/docs/bpta-multi-device-responsive.md +14 -0
  207. package/data/docs/bpta-multi-device-screen-diff.md +197 -0
  208. package/data/docs/bpta-multi-device-screen-layout.md +834 -0
  209. package/data/docs/bpta-multi-device-start.md +376 -0
  210. package/data/docs/bpta-multi-device-ui-development.md +27 -0
  211. package/data/docs/bpta-multi-device-window-direction.md +1322 -0
  212. package/data/docs/bpta-multi-device-window-immersive.md +364 -0
  213. package/data/docs/bpta-multi-device-window-mode.md +1293 -0
  214. package/data/docs/bpta-multi-device-window.md +13 -0
  215. package/data/docs/bpta-multi-device.md +13 -0
  216. package/data/docs/bpta-multi-interaction.md +368 -0
  217. package/data/docs/bpta-multi-mobile-payment.md +282 -0
  218. package/data/docs/bpta-multi-music-app-overview.md +365 -0
  219. package/data/docs/bpta-multi-settings-application-page.md +163 -0
  220. package/data/docs/bpta-multi-tab-practice.md +750 -0
  221. package/data/docs/bpta-multi-target.md +490 -0
  222. package/data/docs/bpta-multi-window-practice.md +795 -0
  223. package/data/docs/bpta-multi_game.md +472 -0
  224. package/data/docs/bpta-music-card.md +1916 -0
  225. package/data/docs/bpta-music-playback-scenarios.md +120 -0
  226. package/data/docs/bpta-native-memory-analysis.md +101 -0
  227. package/data/docs/bpta-native-sub-main-comm.md +323 -0
  228. package/data/docs/bpta-navigation-scenarios.md +69 -0
  229. package/data/docs/bpta-network-ca-security.md +241 -0
  230. package/data/docs/bpta-network-reconnection.md +327 -0
  231. package/data/docs/bpta-network-resources.md +24 -0
  232. package/data/docs/bpta-news-reading.md +12 -0
  233. package/data/docs/bpta-news_homepage.md +449 -0
  234. package/data/docs/bpta-object-serialization-performance.md +12 -0
  235. package/data/docs/bpta-one-shot-to-the-end.md +932 -0
  236. package/data/docs/bpta-online-video-playback-lags-practice.md +298 -0
  237. package/data/docs/bpta-optimization-overview.md +227 -0
  238. package/data/docs/bpta-optimization-tool-practice.md +20 -0
  239. package/data/docs/bpta-package-structure.md +13 -0
  240. package/data/docs/bpta-pad-guide.md +268 -0
  241. package/data/docs/bpta-page-brightness-settings.md +256 -0
  242. package/data/docs/bpta-page-transition.md +583 -0
  243. package/data/docs/bpta-pc-guide.md +438 -0
  244. package/data/docs/bpta-pc.md +12 -0
  245. package/data/docs/bpta-perceived-smoothness.md +49 -0
  246. package/data/docs/bpta-performance-detection.md +160 -0
  247. package/data/docs/bpta-performance-guide-reading.md +50 -0
  248. package/data/docs/bpta-performance-mainthread-consumption-detection.md +11 -0
  249. package/data/docs/bpta-performance-optimization.md +23 -0
  250. package/data/docs/bpta-performance-runtime-detection.md +13 -0
  251. package/data/docs/bpta-performance-sliding-frame-drop-detection.md +19 -0
  252. package/data/docs/bpta-performance-startup-time-detection.md +13 -0
  253. package/data/docs/bpta-permission-application.md +318 -0
  254. package/data/docs/bpta-permission-timeout-analysis.md +51 -0
  255. package/data/docs/bpta-photo.md +15 -0
  256. package/data/docs/bpta-picture-preview.md +464 -0
  257. package/data/docs/bpta-picture.md +12 -0
  258. package/data/docs/bpta-playing-formatted-audio-based-avplayer-arkts.md +481 -0
  259. package/data/docs/bpta-playing-formatted-audio-based-avplayer-cpp.md +593 -0
  260. package/data/docs/bpta-playing-pcm-audio-based-audiorenderer.md +959 -0
  261. package/data/docs/bpta-playing-pcm-audio-based-ohaudio.md +599 -0
  262. package/data/docs/bpta-playing-short-audio-based-soundpool.md +182 -0
  263. package/data/docs/bpta-positioning.md +364 -0
  264. package/data/docs/bpta-power-basic-quality-test.md +35 -0
  265. package/data/docs/bpta-power-consumption-analysis.md +12 -0
  266. package/data/docs/bpta-power-consumption-develop-analysis.md +12 -0
  267. package/data/docs/bpta-power-consumption-experience.md +119 -0
  268. package/data/docs/bpta-power-consumption-runtime-analysis.md +15 -0
  269. package/data/docs/bpta-power_overview.md +26 -0
  270. package/data/docs/bpta-pptimized-component-drawing.md +27 -0
  271. package/data/docs/bpta-pre-connect.md +133 -0
  272. package/data/docs/bpta-preloading-resources.md +21 -0
  273. package/data/docs/bpta-program-framework.md +15 -0
  274. package/data/docs/bpta-properly-use-foreground-resources.md +22 -0
  275. package/data/docs/bpta-purax-guide.md +215 -0
  276. package/data/docs/bpta-quality-overview.md +79 -0
  277. package/data/docs/bpta-reader-page-flip.md +890 -0
  278. package/data/docs/bpta-reasonable-audio-playback-use.md +42 -0
  279. package/data/docs/bpta-reasonable-audio-use.md +163 -0
  280. package/data/docs/bpta-reasonable-bluetooth-use.md +52 -0
  281. package/data/docs/bpta-reasonable-gps-use.md +59 -0
  282. package/data/docs/bpta-reasonable-network-use.md +105 -0
  283. package/data/docs/bpta-reasonable-position-navigation-use.md +47 -0
  284. package/data/docs/bpta-reasonable-request-use.md +77 -0
  285. package/data/docs/bpta-reasonable-sensor-use.md +53 -0
  286. package/data/docs/bpta-reasonable-system-use.md +67 -0
  287. package/data/docs/bpta-recommended-use-of-device-id.md +79 -0
  288. package/data/docs/bpta-reduce-layout-nodes.md +30 -0
  289. package/data/docs/bpta-reduce-time-consuming.md +36 -0
  290. package/data/docs/bpta-redundancy-refresh-guide.md +409 -0
  291. package/data/docs/bpta-render-web-using-same-layer-render.md +601 -0
  292. package/data/docs/bpta-resource-and-storage-optimization.md +14 -0
  293. package/data/docs/bpta-retrieve-process-memory-info.md +49 -0
  294. package/data/docs/bpta-rich-text-display.md +475 -0
  295. package/data/docs/bpta-rich-text-editor.md +426 -0
  296. package/data/docs/bpta-risk-control-engine.md +146 -0
  297. package/data/docs/bpta-scenario-performance-optimization.md +17 -0
  298. package/data/docs/bpta-scenario-power-optimization.md +12 -0
  299. package/data/docs/bpta-scenario-stability-address-sanitizer.md +210 -0
  300. package/data/docs/bpta-scenario-stability-app-freeze.md +615 -0
  301. package/data/docs/bpta-scenario-stability-cppcrash.md +516 -0
  302. package/data/docs/bpta-scenario-stability-exception-exit.md +12 -0
  303. package/data/docs/bpta-scenario-stability-jscrash.md +922 -0
  304. package/data/docs/bpta-scenario-stability-leak.md +276 -0
  305. package/data/docs/bpta-scenario-stability.md +14 -0
  306. package/data/docs/bpta-screen-flicker-solution.md +480 -0
  307. package/data/docs/bpta-shared-bicycle.md +509 -0
  308. package/data/docs/bpta-short-video-base-adaptivevideo.md +403 -0
  309. package/data/docs/bpta-smart-reach.md +306 -0
  310. package/data/docs/bpta-smartwatch.md +755 -0
  311. package/data/docs/bpta-smartwatchnavigation.md +384 -0
  312. package/data/docs/bpta-smooth-application-design.md +225 -0
  313. package/data/docs/bpta-smooth-switching.md +294 -0
  314. package/data/docs/bpta-social-communications.md +11 -0
  315. package/data/docs/bpta-social-share.md +637 -0
  316. package/data/docs/bpta-solutions-to-special-issues.md +12 -0
  317. package/data/docs/bpta-sound-quality-switching.md +422 -0
  318. package/data/docs/bpta-spatiality-immersive.md +531 -0
  319. package/data/docs/bpta-special-text-recognition.md +137 -0
  320. package/data/docs/bpta-stability-address-illegal-way.md +190 -0
  321. package/data/docs/bpta-stability-address-sanitizer-catagory.md +212 -0
  322. package/data/docs/bpta-stability-address-sanitizer-faq.md +32 -0
  323. package/data/docs/bpta-stability-address-sanitizer-opt.md +170 -0
  324. package/data/docs/bpta-stability-address-sanitizer-overview.md +23 -0
  325. package/data/docs/bpta-stability-address-sanitizer-principle.md +179 -0
  326. package/data/docs/bpta-stability-analysis.md +17 -0
  327. package/data/docs/bpta-stability-app-analyzer.md +11 -0
  328. package/data/docs/bpta-stability-app-crash-cpp-way.md +200 -0
  329. package/data/docs/bpta-stability-app-crash-js-way.md +148 -0
  330. package/data/docs/bpta-stability-app-crash.md +13 -0
  331. package/data/docs/bpta-stability-app-freeze-ark-runtime.md +339 -0
  332. package/data/docs/bpta-stability-app-freeze-opt.md +80 -0
  333. package/data/docs/bpta-stability-app-freeze-way.md +410 -0
  334. package/data/docs/bpta-stability-app-freeze.md +12 -0
  335. package/data/docs/bpta-stability-app-killed-way.md +49 -0
  336. package/data/docs/bpta-stability-ark-detection.md +12 -0
  337. package/data/docs/bpta-stability-ark-exception-detection.md +38 -0
  338. package/data/docs/bpta-stability-ark-runtime-detection.md +134 -0
  339. package/data/docs/bpta-stability-asan-detection.md +450 -0
  340. package/data/docs/bpta-stability-coding-standard-api.md +2054 -0
  341. package/data/docs/bpta-stability-coding-standard-cpp.md +91 -0
  342. package/data/docs/bpta-stability-coding-standard-libuv.md +772 -0
  343. package/data/docs/bpta-stability-coding-standard-ndk-arkts.md +189 -0
  344. package/data/docs/bpta-stability-coding-standard-node.md +478 -0
  345. package/data/docs/bpta-stability-coding-standard.md +16 -0
  346. package/data/docs/bpta-stability-cpp-crash-opt.md +346 -0
  347. package/data/docs/bpta-stability-detection.md +14 -0
  348. package/data/docs/bpta-stability-deveco-testing.md +73 -0
  349. package/data/docs/bpta-stability-develop-detection.md +17 -0
  350. package/data/docs/bpta-stability-exception-exit-opt.md +12 -0
  351. package/data/docs/bpta-stability-fault-log.md +14 -0
  352. package/data/docs/bpta-stability-fault-type.md +31 -0
  353. package/data/docs/bpta-stability-file-handle-detection.md +96 -0
  354. package/data/docs/bpta-stability-gwpasan-detection.md +588 -0
  355. package/data/docs/bpta-stability-hwasan-detection.md +360 -0
  356. package/data/docs/bpta-stability-ide-static-detection.md +343 -0
  357. package/data/docs/bpta-stability-js-crash-opt.md +21 -0
  358. package/data/docs/bpta-stability-js-memleak-detection.md +214 -0
  359. package/data/docs/bpta-stability-leak-detection.md +15 -0
  360. package/data/docs/bpta-stability-leak-opt.md +251 -0
  361. package/data/docs/bpta-stability-leak-way.md +459 -0
  362. package/data/docs/bpta-stability-log-specs.md +31 -0
  363. package/data/docs/bpta-stability-log-standard-hilog.md +191 -0
  364. package/data/docs/bpta-stability-log-standard.md +11 -0
  365. package/data/docs/bpta-stability-memleak-detection-overview.md +109 -0
  366. package/data/docs/bpta-stability-native-memleak-detection.md +204 -0
  367. package/data/docs/bpta-stability-operate-apm.md +113 -0
  368. package/data/docs/bpta-stability-operate-app-event.md +320 -0
  369. package/data/docs/bpta-stability-operate-event.md +11 -0
  370. package/data/docs/bpta-stability-operate.md +15 -0
  371. package/data/docs/bpta-stability-opt.md +18 -0
  372. package/data/docs/bpta-stability-overview.md +17 -0
  373. package/data/docs/bpta-stability-ram-detection.md +17 -0
  374. package/data/docs/bpta-stability-runtime-address-sanitizer-detection.md +21 -0
  375. package/data/docs/bpta-stability-runtime-appkilled-detection.md +44 -0
  376. package/data/docs/bpta-stability-runtime-crash-detection.md +14 -0
  377. package/data/docs/bpta-stability-runtime-detection.md +14 -0
  378. package/data/docs/bpta-stability-runtime-exception-exit-detection.md +12 -0
  379. package/data/docs/bpta-stability-runtime-freeze-detection.md +21 -0
  380. package/data/docs/bpta-stability-runtime-leak-detection.md +31 -0
  381. package/data/docs/bpta-stability-testing.md +11 -0
  382. package/data/docs/bpta-stability-thread-detection.md +11 -0
  383. package/data/docs/bpta-stability-thread-leak-detection.md +35 -0
  384. package/data/docs/bpta-stability-tsan-detection.md +477 -0
  385. package/data/docs/bpta-stability-ubsan-detection.md +350 -0
  386. package/data/docs/bpta-startup-response-optimization.md +12 -0
  387. package/data/docs/bpta-state-refresh.md +48 -0
  388. package/data/docs/bpta-static-scenarios.md +63 -0
  389. package/data/docs/bpta-status-management.md +872 -0
  390. package/data/docs/bpta-surface-encoder.md +427 -0
  391. package/data/docs/bpta-swiper_high_performance_development_guide.md +357 -0
  392. package/data/docs/bpta-tablet-pc.md +11 -0
  393. package/data/docs/bpta-taskpool_usage_specifications_and_faqs.md +625 -0
  394. package/data/docs/bpta-text-expand-collapse.md +274 -0
  395. package/data/docs/bpta-texture-compression-improve-performance.md +336 -0
  396. package/data/docs/bpta-thread-priority-setting.md +233 -0
  397. package/data/docs/bpta-threads-serialization-timeout-analysis.md +169 -0
  398. package/data/docs/bpta-time-optimization-of-the-main-thread.md +1239 -0
  399. package/data/docs/bpta-travel-navigation.md +11 -0
  400. package/data/docs/bpta-tv.md +11 -0
  401. package/data/docs/bpta-ui-component-encapsulation.md +585 -0
  402. package/data/docs/bpta-ui-component-performance-optimization.md +597 -0
  403. package/data/docs/bpta-ui-dynamic-operations.md +618 -0
  404. package/data/docs/bpta-ui-skip-analysis.md +191 -0
  405. package/data/docs/bpta-unified-drag-and-drop.md +1189 -0
  406. package/data/docs/bpta-use-of-background-hardware-resources.md +16 -0
  407. package/data/docs/bpta-use-of-background-software-resources.md +14 -0
  408. package/data/docs/bpta-use-of-background-tasks.md +23 -0
  409. package/data/docs/bpta-utilize-hwc-efficiently.md +461 -0
  410. package/data/docs/bpta-vdeocast.md +558 -0
  411. package/data/docs/bpta-video-adaptation-based-web.md +462 -0
  412. package/data/docs/bpta-video-barrage.md +68 -0
  413. package/data/docs/bpta-video-codec.md +42 -0
  414. package/data/docs/bpta-video-component-long-video.md +659 -0
  415. package/data/docs/bpta-video-component-short-video.md +337 -0
  416. package/data/docs/bpta-video-layer.md +32 -0
  417. package/data/docs/bpta-video-practices.md +12 -0
  418. package/data/docs/bpta-video-render.md +1225 -0
  419. package/data/docs/bpta-video-rom.md +37 -0
  420. package/data/docs/bpta-video-thumbnail.md +179 -0
  421. package/data/docs/bpta-video-wifi.md +40 -0
  422. package/data/docs/bpta-vsync-power-optimization.md +116 -0
  423. package/data/docs/bpta-waterflow-based-on-scrollcomponents.md +989 -0
  424. package/data/docs/bpta-waterflow-operations.md +991 -0
  425. package/data/docs/bpta-waterflow-performance-optimization.md +191 -0
  426. package/data/docs/bpta-wavewheel-for-image-editor.md +421 -0
  427. package/data/docs/bpta-wear.md +12 -0
  428. package/data/docs/bpta-web-adaptation.md +451 -0
  429. package/data/docs/bpta-web-app-jump-and-pull-up.md +310 -0
  430. package/data/docs/bpta-web-click-response-delay-analysis.md +164 -0
  431. package/data/docs/bpta-web-completion-delay-analysis.md +209 -0
  432. package/data/docs/bpta-web-develop-optimization.md +2596 -0
  433. package/data/docs/bpta-web-development.md +15 -0
  434. package/data/docs/bpta-web-frame-rate-performance-analysis.md +252 -0
  435. package/data/docs/bpta-web-interceptor.md +724 -0
  436. package/data/docs/bpta-web-performance-optimization.md +11 -0
  437. package/data/docs/bpta-window-and-screen-management.md +12 -0
  438. package/data/docs/bpta-zhenlv.md +559 -0
  439. package/data/docs/changelog.md +1410 -0
  440. package/data/docs/low-power-consumption-suggestions.md +246 -0
  441. package/data/docs/multi-business-office.md +275 -0
  442. package/data/docs/multi-communication-app.md +240 -0
  443. package/data/docs/multi-community-app.md +257 -0
  444. package/data/docs/multi-convenient-life.md +501 -0
  445. package/data/docs/multi-financial-app.md +288 -0
  446. package/data/docs/multi-news-read.md +286 -0
  447. package/data/docs/multi-picture-app.md +219 -0
  448. package/data/docs/multi-shopping-price-comparison.md +254 -0
  449. package/data/docs/multi-short-video-app.md +315 -0
  450. package/data/docs/multi-ticket-class.md +458 -0
  451. package/data/docs/multi-travel-accommodation.md +361 -0
  452. package/data/docs/multi-travel-navigation.md +449 -0
  453. package/data/docs/multi-video-app.md +492 -0
  454. package/data/index.md +2886 -0
  455. package/dist/data.js +180 -0
  456. package/dist/index.js +203 -0
  457. package/dist/search.js +102 -0
  458. package/package.json +57 -0
  459. package/scripts/trim-code-extra.mjs +78 -0
  460. package/scripts/trim-code.mjs +106 -0
@@ -0,0 +1,288 @@
1
+ # 多设备银行理财界面
2
+
3
+ > 来源: https://developer.huawei.com/consumer/cn/doc/best-practices/multi-financial-app
4
+ > 文档标识(fileName): multi-financial-app
5
+ > 目录(catalogName): best-practices
6
+ > 语言: cn
7
+ > 更新时间: 2026-06-23 03:37:57
8
+ > 导航地址: /hmos/hmos-dp1
9
+
10
+ ---
11
+ #### 概述
12
+
13
+ 本文从当前常见的多设备应用场景中选取银行理财应用作为典型案例,详细阐述“一多”理念在实际开发中的应用。银行理财应用在大屏幕设备上使用时,需保障用户办理金融业务的顺畅性,同时提升屏幕交互效率。多设备银行理财应用围绕首页、账户总览、理财详情和购买流程展开,覆盖了用户从资产入口浏览、产品查看到购买确认的核心链路。
14
+
15
+ 当前应用已适配的设备包括:直板机、双折叠(Mate X系列)、三折叠、阔折叠、平板和电脑。
16
+
17
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/9a/v3/qNX8kzUyTxy62yDKMEg-jg/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260623T075612Z&HW-CC-Expire=86400&HW-CC-Sign=76AAAC459CD3C8F6E240520997C7D72CDB0FCC845E33ADAE56BAD55AB251EB3A)
18
+
19
+ 阅读本文前,建议开发者先了解[ArkUI(方舟UI框架)](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkui)和[一次开发,多端部署概览](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-overview)相关知识。
20
+
21
+ 下文将从UX设计、工程管理、页面开发三个方面,系统介绍银行理财应用在实际开发中的最佳实践,为开发者提供可借鉴的实现思路。
22
+
23
+ - [UX设计](#section99762271515):介绍银行理财应用的交互逻辑与通用的设计要点,开发者可直接参考同类设计要点。
24
+ - [工程管理](#section719020851716):介绍“一多”工程所需配置,并推荐采用结构更清晰的三层架构。
25
+ - [移动端页面](#section202931220101020)和[电脑端页面](#section5748352172710):遵循实际应用开发流程,以页面为基本单元,依次讲解窗口适配、页面开发的设计思路与实现方法。
26
+
27
+ #### UX设计
28
+
29
+ 应用的UX设计可参考[金融理财类](https://developer.huawei.com/consumer/cn/doc/design-guides/responsive-design-examples6-0000001793536905)的多设备响应式设计指南,设计参考图如下所示。
30
+
31
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ee/v3/O7pJzMUITvaAt3U9xMox_A/zh-cn_image_0000002619248557.png?HW-CC-KV=V1&HW-CC-Date=20260623T075612Z&HW-CC-Expire=86400&HW-CC-Sign=5518CC09CD759802C68C402FA828AF58682277BC0EB3DE2B0808EED45A5CED01 "点击放大")
32
+
33
+ #### 工程管理
34
+
35
+ 为确保“一多”工程代码的复用性与可维护性,建议开发者采用分层架构组织代码工程。该架构将项目划分为产品定制层(products)、基础特性层(features)和公共能力层(commons)三个层级,各层级权责明确且功能独立,为开发者提供了清晰、高效且可扩展的设计方案。关于分层架构的具体设计细节,可参考[分层架构设计](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-layered-architecture-design)。
36
+
37
+ ## 创建工程
38
+
39
+ 建议开发者参考[多设备工程部署与发布](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-ide)相关内容,掌握分层架构工程的创建与配置方法后,创建模板项目工程。根据银行理财应用的开发需求进行针对性修改,确保工程架构贴合实际业务需求。
40
+
41
+ ## 工程结构
42
+
43
+ 银行理财应用采用推荐的分层架构,将代码工程按products、features、commons三个层级组织。各层级设计如下:
44
+
45
+ - products层:银行理财应用需要适配的设备包括直板机、双折叠(Mate X系列)、三折叠、阔折叠、平板和电脑。由于电脑界面布局与其他设备差异较大,因此单独创建名为“pc”的HAP包作为电脑设备的应用入口;直板机、双折叠(Mate X系列)、三折叠、阔折叠及平板设备上的界面布局整体相似,部分差异可以通过“一多”的[自适应布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-adaptive-layout)和[响应式布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout)进行适配,为此创建名为“default”的HAP包作为这些设备的应用入口。
46
+ - features层:包含四个核心业务模块——账户(account)、投资(investment)、理财产品(wealth)和推荐(recommend)。为各模块分别创建对应HAR包,供products层按需引用。各模块相对独立,互不依赖,便于后续维护与迭代。
47
+ - commons层:为实现代码复用并减少冗余,集中存放公共常量、日志工具类及窗口管理工具等基础能力,供其他模块统一调用。
48
+
49
+ 工程结构如下:
50
+
51
+ ```
52
+ ├──commons/financialbase
53
+ │ └──src/main
54
+ │ ├──ets
55
+ │ │ ├──constants // 公共常量定义
56
+ │ │ └──utils // 工具类与窗口能力封装
57
+ │ └──resources // 公共资源
58
+ ├──features
59
+ │ ├──account // 账户模块
60
+ │ │ └──src/main
61
+ │ │ ├──ets
62
+ │ │ │ ├──components // 账户模块页面组件
63
+ │ │ │ ├──constants // 账户模块常量
64
+ │ │ │ ├──model // 账户模块数据模型
65
+ │ │ │ └──viewmodel // 账户模块视图模型
66
+ │ │ └──resources // 账户模块资源
67
+ │ ├──investment // 投资模块
68
+ │ │ └──src/main
69
+ │ │ ├──ets
70
+ │ │ │ ├──components // 购买模块页面组件
71
+ │ │ │ ├──model // 购买模块数据模型
72
+ │ │ │ └──viewmodel // 投资模块视图模型
73
+ │ │ └──resources // 投资模块资源
74
+ │ ├──wealth // 理财产品模块
75
+ │ │ └──src/main
76
+ │ │ ├──ets
77
+ │ │ │ ├──components // 产品与卖点展示组件
78
+ │ │ │ ├──model // 产品模块数据模型
79
+ │ │ │ └──viewmodel // 产品模块视图模型
80
+ │ │ └──resources // 产品模块资源
81
+ │ └──recommend // 推荐内容特性
82
+ │ └──src/main
83
+ │ ├──ets
84
+ │ │ ├──components // 推荐模块组件
85
+ │ │ ├──model // 推荐模块数据模型
86
+ │ │ └──viewmodel // 推荐模块视图模型
87
+ │ └──resources // 推荐模块资源
88
+ └──products
89
+ ├──default // 手机/平板设备
90
+ │ └──src/main
91
+ │ ├──ets
92
+ │ │ ├──entryability // 入口类
93
+ │ │ ├──model // 数据模型
94
+ │ │ ├──pages // 页面
95
+ │ │ ├──view // 组件
96
+ │ │ └──viewmodel // 视图模型
97
+ │ └──resources // 资源文件
98
+ └──pc // PC设备
99
+ └──src/main
100
+ │ ├──model // 数据结构
101
+ │ ├──pages // 页面
102
+ │ ├──pcbackupability // 数据备份与恢复扩展能力
103
+ │ ├──view // 组件
104
+ │ └──viewmodel // 视图模型
105
+ └──resources // 资源文件
106
+ ```
107
+
108
+ #### 移动端页面
109
+
110
+ 本章介绍如何针对直板机、双折叠(Mate X系列)、三折叠、阔折叠及平板设备上的银行理财应用,利用“一多”布局能力,实现页面层级“一套代码、多端适配”的目标。同时,阐述这些设备上的窗口适配方案。
111
+
112
+ ## 窗口适配
113
+
114
+ - 窗口模式
115
+
116
+ 适配设备支持全屏、分屏、悬浮窗和自由窗口模式,具体参见[窗口模式](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-window-mode)。其中,分屏模式与悬浮窗无需特殊设计,可通过系统方式进入。应用内监听窗口尺寸变化,[通过断点刷新UI](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section175001836203617),即可自动适配全屏、分屏、悬浮窗和自由窗口模式下的布局。
117
+ - 窗口方向
118
+
119
+ 在[model.json5配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/module-configuration-file)中将orientation字段设置为follow_desktop(跟随桌面的旋转模式),详情可参考[为应用配置旋转策略](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-window-direction#section714419371037)。
120
+ - 窗口沉浸式
121
+
122
+ 根据UX设计,需实现不同窗口模式(全屏、分屏、悬浮窗、自由窗口)下的沉浸式效果,可参考[窗口沉浸式](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-window-immersive)。推荐开发者使用[实现沉浸式效果](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-window-immersive#section180431120426)中的组件级沉浸方案(组件设置页面沉浸),同时进行动态安全区避让,确保沉浸式显示效果。自由窗口模式下,使用[window.setWindowDecorVisible(false)](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-window-window#setwindowdecorvisible11)隐藏标题栏,仅保留右上角三键,使应用页面延伸至标题栏区域,实现沉浸式显示效果。
123
+
124
+ ## 首页
125
+
126
+ 银行理财应用首页主要承担业务入口、消息公告、卡片内容和财富推荐的聚合展示。根据功能设计,应用首页相关内容划分为6个区域,效果图如下:
127
+
128
+ | 横向断点 | sm | md | lg、xl |
129
+ | --- | --- | --- | --- |
130
+ | 首页 | | | |
131
+
132
+ **界面开发**
133
+
134
+ 具体介绍及实现方案如下表所示:
135
+
136
+ | 区域编号 | 简介 | 实现方案 |
137
+ | --- | --- | --- |
138
+ | 1 | 底部Tabs | 使用[HdsTabs](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdstabs)实现,通过[barfloatingstyle](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdstabs#barfloatingstyle)属性为页签设置悬浮样式,确保移动端底部触达优先。 |
139
+ | 2 | 顶部栏 | 展示城市、搜索和常用操作。结合组件的[layoutWeight](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-universal-attributes-size#layoutweight)属性,实现左侧城市在不同断点下的自适应拉伸效果。小屏下搜索功能收敛为搜索图标,中大屏展开为搜索框;左右内边距随断点变化。 |
140
+ | 3 | 主业务快捷区 | 使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)横向布局,通过监听不同断点的变化,动态调整左右内边距。sm、md断点下,图标和文字纵向排布,lg、xl断点下切换为横向排布。 |
141
+ | 4 | 业务宫格区 | 使用网格容器[Grid](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-grid)实现。通过[columnsTemplate](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-grid#columnstemplate)属性,动态调整不同断点下的显示列数。 |
142
+ | 5 | 消息卡片、银行卡信息、个人养老金 | 使用响应式布局的栅格系统([GridRow](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridrow)、[GridCol](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridcol))实现。通过监听断点变化,实现响应式排列。横向sm断点下,三个卡片纵向堆叠;md断点下,消息卡片独占一行,银行卡信息和养老金卡片并排;lg断点以上,三个卡片同行均分排列。 |
143
+ | 6 | 财富精选 | 使用响应式布局的栅格系统([GridRow](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridrow)、[GridCol](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridcol))实现,断点变化时同步调整列表数量和右侧扩展内容,确保不同设备上的信息密度平衡。 |
144
+
145
+ ## 账户总览页
146
+
147
+ 账户总览页用于展示用户总资产、昨日收益概览,以及活期、投资、负债等资产模块的分区信息。根据功能设计,应用账户总览页相关内容划分为6个区域,效果图如下:
148
+
149
+ | 横向断点 | sm | md | lg、xl |
150
+ | --- | --- | --- | --- |
151
+ | 账户总览页 | | | |
152
+
153
+ **界面开发**
154
+
155
+ 具体介绍及实现方案如下表所示:
156
+
157
+ | 区域编号 | 简介 | 实现方案 |
158
+ | --- | --- | --- |
159
+ | 1 | 标题栏 | 通过[HdsNavDestination](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdsnavdestination)组件的[titleBar](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdsnavdestination#titlebar)属性,为标题栏设置沉浸样式与动态模糊样式。 |
160
+ | 2 | 总览面板 | 整体采用挪移布局,使用响应式栅格系统([GridRow](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridrow)、[GridCol](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridcol))实现两栏布局。通过columns属性定义不同断点下的栅格列数(可参考[GridRowOptions对象说明](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridrow#gridrowoptions对象说明)),并使用[span](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridcol#span)属性控制各区域在不同断点下的占比。 |
161
+ | 3 | 产品推荐(个人养老金) | 使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)横向布局,通过监听不同断点的变化,动态调整左右内边距。 |
162
+ | 4 | 活期存款 | - sm断点:使用[Column](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-column)纵向堆叠显示。 - md断点:使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)横向排列,中间添加垂直分割线。 - lg及以上断点:使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)横向排列三个卡片,每个卡片使用[layoutWeight](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-universal-attributes-size#layoutweight)属性均分宽度。 |
163
+ | 5 | 投资(理财卡片、基金卡片) | 使用响应式布局的栅格系统([GridRow](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridrow)、[GridCol](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridcol))实现。通过监听断点变化,实现响应式排列。 - sm断点:每个卡片占满整行。 - md及以上断点:两个卡片并排显示。 |
164
+ | 6 | 负债 | - sm断点:纵向堆叠显示,包含剩余应还、未出账单、可用额度三个部分。 - md断点:使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)横向布局,剩余应还和未出账单作为一组,可用额度作为另一组,中间添加垂直分割线。 - lg及以上断点:使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)横向布局,可用额度和剩余应还信息并排显示,中间添加垂直分割线,布局更加丰富。 |
165
+
166
+ ## 理财详情页
167
+
168
+ 理财详情页用于展示理财产品的关键信息、交易时间线及产品亮点,并提供“关注/买入”的底部操作入口。根据功能设计,将应用首页相关内容划分为5个区域,效果图如下:
169
+
170
+ | 横向断点 | sm | md | lg、xl |
171
+ | --- | --- | --- | --- |
172
+ | 理财详情页 | | | |
173
+
174
+ **界面开发**
175
+
176
+ 具体介绍及实现方案如下表所示:
177
+
178
+ | 区域编号 | 简介 | 实现方案 |
179
+ | --- | --- | --- |
180
+ | 1 | 标题栏 | 在父组件[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)中分别实现返回按钮及标题文字。通过[Stack](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-stack)组件控制理财详情页组件的层级,确保标题栏始终显示在理财详情页的最上层。 |
181
+ | 2 | 产品信息卡片 | 使用[Flex](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-flex)布局和条件渲染。通过监听断点变化,动态调整内边距。 - sm断点:纵向排列产品元信息(产品代码、销售类型、公司名称)。 - md及以上断点:横向排列,中间添加分隔符。 |
182
+ | 3 | 时间轴卡片 | 使用网格容器[Grid](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-grid)定义4列网格,比例固定,通过监听断点变化,动态调整内边距。通过[constraintSize](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-securitycomponent-attributes#constraintsize11)属性约束卡片最大宽度,避免在大屏上过度拉伸。 |
183
+ | 4 | 产品亮点 | 使用响应式布局的栅格系统([GridRow](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridrow)、[GridCol](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridcol))实现。通过监听断点变化,实现响应式排列。 - sm断点:每个卡片占满整行。 - md及以上断点:两个卡片并排显示。 |
184
+ | 5 | 底部操作栏 | 在父组件[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)中分别实现关注按钮及购买按钮。使用[layoutWeight](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-universal-attributes-size#layoutweight)属性控制不同断点下的布局权重。通过[Stack](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-stack)组件控制理财详情页组件的层级,确保底部操作栏始终显示在理财详情页的最下层。 |
185
+
186
+ ## 购买页
187
+
188
+ 购买页用于完成理财产品的申购确认,用户在此确认金额、选择付款方式并核对产品信息。根据功能设计,将应用首页相关内容划分为6个区域,效果图如下:
189
+
190
+ | 横向断点 | sm | md | lg、xl |
191
+ | --- | --- | --- | --- |
192
+ | 购买页 | | | |
193
+
194
+ **界面开发**
195
+
196
+ 在sm断点下,使用[bindsheet](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-universal-attributes-sheet-transition#bindsheet)为组件绑定半模态页面,md及以上断点,使用[Navigation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-navigation)实现双栏。具体实现方案如下表所示:
197
+
198
+ | 区域编号 | 简介 | 实现方案 |
199
+ | --- | --- | --- |
200
+ | 1 | 标题栏 | 在父组件[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)中分别实现标题文字和关闭按钮,通过[justifycontent](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row#justifycontent8)属性设置在水平方向均匀分配弹性元素。通过[Stack](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-stack)组件控制购买页组件的层级,确保标题栏始终显示在购买页的最上层。 |
201
+ | 2 | 产品名称 | 使用[Text](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-text)组件实现。 |
202
+ | 3 | 购买金额卡片 | 使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)布局,左侧显示"购买金额",右侧显示"交易规则"。 输入区域:使用[TextInput](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-textinput)组件实现,通过[type](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-textinput#type)属性限制输入类型。 快捷金额按钮:使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)组件水平排列。 |
203
+ | 4 | 支付方式卡片 | 使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)水平布局,左侧显示"支付方式",右侧显示银行卡信息和下拉箭头。 |
204
+ | 5 | 产品摘要信息 | 使用[Column](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-column)组件垂直排列7个摘要项,使用space属性控制垂直边距。 |
205
+ | 6 | 底部确认按钮 | 通过[Stack](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-stack)组件控制购买页组件的层级,确保底部确认按钮始终显示在购买页的最下层。 |
206
+
207
+ #### 电脑端页面
208
+
209
+ 本章介绍如何基于现有移动端界面开发方案,实现代码逻辑与布局复用,高效完成电脑设备上银行理财应用的界面开发。
210
+
211
+ ## 首页
212
+
213
+ 银行理财应用首页主要承担业务入口、消息公告、卡片内容和财富推荐的聚合展示。根据功能设计,应用首页相关内容划分为6个区域,效果图如下:
214
+
215
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/7/v3/CXRr9X3MRkGf8yVVp-Ufew/zh-cn_image_0000002610026103.png?HW-CC-KV=V1&HW-CC-Date=20260623T075612Z&HW-CC-Expire=86400&HW-CC-Sign=A992C7FBB7FCEABEC43C296C73E81778815228D44D6359624E93BFED7CAE4157 "点击放大")
216
+
217
+ **界面开发**
218
+
219
+ 具体介绍及实现方案如下表所示:
220
+
221
+ | 区域编号 | 简介 | 实现方案 |
222
+ | --- | --- | --- |
223
+ | 1 | 侧边栏 | 使用侧边栏容器[SideBarContainer](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-sidebarcontainer)实现。 |
224
+ | 2 | 顶部栏 | 展示城市、搜索和常用操作。结合组件的[layoutWeight](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-universal-attributes-size#layoutweight)属性,实现左侧城市在不同断点下的自适应拉伸效果。 |
225
+ | 3 | 主业务快捷区 | 使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)横向布局,通过监听不同断点的变化,动态调整左右内边距。sm、md断点下,图标和文字纵向排布,lg、xl断点下切换为横向排布。 |
226
+ | 4 | 业务宫格区 | 使用网格容器[Grid](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-grid)实现。通过[columnsTemplate](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-grid#columnstemplate)属性,动态调整不同断点下的显示列数。 |
227
+ | 5 | 消息卡片、银行卡信息、个人养老金 | 使用响应式布局的栅格系统([GridRow](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridrow)、[GridCol](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridcol))实现。消息卡片独占一行,银行卡信息和养老金卡片并排。 |
228
+ | 6 | 财富精选 | 复用移动端设备布局方案,同移动端[首页](#section16469195751520)区域6的布局实现方案。 |
229
+
230
+ ## 账户总览页
231
+
232
+ 账户总览页用于展示用户总资产、昨日收益概览,及活期、投资、负债等资产模块的分区信息。根据功能设计,应用账户总览页相关内容划分为6个区域,效果图如下:
233
+
234
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/c0/v3/DHTWM6UVT4mrRS5RpY0ZXQ/zh-cn_image_0000002579426308.png?HW-CC-KV=V1&HW-CC-Date=20260623T075612Z&HW-CC-Expire=86400&HW-CC-Sign=5890F753B0E3FC448CC6272CF847FFA4570F281CF71AFFF812EF6CF17EB407C6 "点击放大")
235
+
236
+ **界面开发**
237
+
238
+ 具体介绍及实现方案如下表所示:
239
+
240
+ | 区域编号 | 简介 | 实现方案 |
241
+ | --- | --- | --- |
242
+ | 1 | 标题栏 | 在父组件[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)中分别实现返回按钮及标题文字。通过[Stack](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-stack)组件控账户总览页组件的层级,确保标题栏始终显示在账户总览页的最上层。 |
243
+ | 2 | 总览面板 | 复用移动端设备布局方案,同移动端[账户总览页](#section167145014310)对应区域的布局实现方案。 |
244
+ | 3 | 产品推荐 |
245
+ | 4 | 活期存款 |
246
+ | 5 | 投资(理财卡片、基金卡片) |
247
+ | 6 | 负债信息 |
248
+
249
+ ## 理财详情页页
250
+
251
+ 理财详情页用于展示单个理财产品的关键信息、交易时间线及产品亮点,并提供“关注/买入”的底部操作入口。根据功能设计,将应用首页相关内容划分为5个区域,效果图如下:
252
+
253
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/1e/v3/LR4-DJHkTXKImk1vYWDCSg/zh-cn_image_0000002609946203.png?HW-CC-KV=V1&HW-CC-Date=20260623T075612Z&HW-CC-Expire=86400&HW-CC-Sign=FFEEFC2948A8C61E204372916D7EDFD4DA1F961ED6B76A5565AAABE367226C14 "点击放大")
254
+
255
+ **界面开发**
256
+
257
+ 具体介绍及实现方案如下表所示:
258
+
259
+ | 区域编号 | 简介 | 实现方案 |
260
+ | --- | --- | --- |
261
+ | 1 | 标题栏 | 在父组件[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)中分别实现返回按钮及标题文字。 |
262
+ | 2 | 产品信息卡片 | 复用移动端设备布局方案,同移动端[理财详情页](#section5658124155610)对应区域的布局实现方案。 |
263
+ | 3 | 时间轴卡片 |
264
+ | 4 | 产品亮点 |
265
+ | 5 | 底部操作栏 | 在父组件[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)中分别实现关注按钮及购买按钮。购买按钮使用固定宽度,通过[justifycontent](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row#justifycontent8)属性设置在水平方向尾部对齐。 |
266
+
267
+ ## 购买页
268
+
269
+ 购买页用于完成理财产品的申购确认,用户在此确认金额、选择付款方式并核对产品信息。根据功能设计,将应用首页相关内容划分为6个区域,效果图如下:
270
+
271
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/d6/v3/QKf41QiZRB6jL2X4fZWByQ/zh-cn_image_0000002579586218.png?HW-CC-KV=V1&HW-CC-Date=20260623T075612Z&HW-CC-Expire=86400&HW-CC-Sign=52295A90866D00EA9816A7DF0B58BA5D4BCF461814056D039333497E6D9112B2 "点击放大")
272
+
273
+ **界面开发**
274
+
275
+ 具体介绍及实现方案如下表所示:
276
+
277
+ | 区域编号 | 简介 | 实现方案 |
278
+ | --- | --- | --- |
279
+ | 1 | 标题栏 | 复用移动端设备布局方案,同移动端[购买页](#section4568142153710)对应区域的布局实现方案。 |
280
+ | 2 | 产品名称 |
281
+ | 3 | 购买金额卡片 |
282
+ | 4 | 支付方式卡片 |
283
+ | 5 | 产品摘要信息 |
284
+ | 6 | 底部确认按钮 |
285
+
286
+ #### 示例代码
287
+
288
+ [多设备银行理财界面](https://gitcode.com/HarmonyOS_Samples/MultiFinancialManagement)
@@ -0,0 +1,286 @@
1
+ # 多设备新闻阅读界面
2
+
3
+ > 来源: https://developer.huawei.com/consumer/cn/doc/best-practices/multi-news-read
4
+ > 文档标识(fileName): multi-news-read
5
+ > 目录(catalogName): best-practices
6
+ > 语言: cn
7
+ > 更新时间: 2026-06-23 03:38:04
8
+ > 导航地址: /hmos/hmos-dp1
9
+
10
+ ---
11
+ #### 概述
12
+
13
+ 本文以新闻阅读应用作为典型案例详细介绍“一多”在实际开发中的应用。新闻阅读应用在大屏幕设备的使用过程中,不仅要保障用户在界面浏览中的正常使用,也要尽可能提升屏幕的交互效率。该示例主要界面包含首页推荐、热门新闻、新闻详情、刷新闻、精选发现等。
14
+
15
+ 新闻阅读一多开发过程中涉及的相关能力包括:
16
+
17
+ - 挪移布局
18
+ - 延伸布局
19
+ - 重复布局
20
+ - 列表变瀑布流
21
+ - 列表变宫格
22
+ - 全屏新闻变瀑布流
23
+ - 边看边评
24
+ - 沉浸浏览
25
+ - 文字大小调节
26
+
27
+ 下面的章节将分别从[UX设计](#section1719610101057)、[架构设计](#section119741723356)、[页面开发](#section1180220717819)三个角度给出推荐的参考样例,介绍“一多”新闻阅读应用在开发过程中的最佳实践。
28
+
29
+ ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/23/v3/T7wBTsiyRsm6MapakNo3AQ/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260623T075613Z&HW-CC-Expire=86400&HW-CC-Sign=AB9F8625504E32E5EEED022A22C5CC75E599EE9941AC4743243796B7EFEC366D)
30
+
31
+ 阅读本文前,开发者需熟悉[ArkUI(方舟UI框架)](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkui)和页面开发的“一多”能力(参考[一次开发,多端部署概览](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-overview))。下文将详细介绍它们在“一多”开发实践中如何使用。
32
+
33
+ #### UX设计
34
+
35
+ 新闻阅读类的多设备响应式设计指南,[点击访问](https://developer.huawei.com/consumer/cn/doc/design-guides/responsive-design-examples4-0000001746657290)。
36
+
37
+ #### 架构设计
38
+
39
+ HarmonyOS的分层架构包括产品定制层、基础特性层和公共能力层,为开发者提供了一个清晰、高效、可扩展的设计架构。更多详细信息,请参考[分层架构设计](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-layered-architecture-design)的逻辑设计。
40
+
41
+ #### 页面开发
42
+
43
+ 本章介绍新闻阅读应用中如何使用“一多”布局能力,完成页面层级的多端适配。下文将从不同页面介绍具体布局能力,帮助开发者从零开始开发新闻阅读应用。
44
+
45
+ ## 首页推荐
46
+
47
+ 新闻阅读应用首页主要推荐精选新闻,解决用户看新闻的需求。首页内容围绕这一功能设计。观察首页在多设备上的UX设计图,可以进行如下设计:
48
+
49
+ - 将首页划分为9个部分,效果图如下:
50
+
51
+ | | sm | md | lg |
52
+ | --- | --- | --- | --- |
53
+ | 效果图 | | | |
54
+
55
+ 实现方案如下表:
56
+
57
+ | 区域编号 | 简介 | 实现方案 |
58
+ | --- | --- | --- |
59
+ | 1 | 底部/侧边页签 | 借助[栅格布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section1061332817545)监听断点变化改变位置。 |
60
+ | 2 | 顶部页签及搜索框 | 使用[栅格布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section1061332817545)监听断点变化实现折行显示,[List](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-list)实现延伸布局,layoutWeight实现拉伸能力。 |
61
+ | 3 | [顶部文字要闻](#li42441859453) | 使用[List](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-list)的lanes属性,在不同断点下呈1、2、3列显示。 |
62
+ | 4 | [新闻大图卡片](#li1441844512434) | 使用[Swiper](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-swiper),指定displayCount属性实现延伸布局,设置aspectRatio属性实现缩放能力。 |
63
+ | 5 | [上文下图](#li894391114417) | 采用[重复布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section1653271133613),在手机、折叠屏上保持原有布局,在PC/2in1及更宽的设备上重复布局。 |
64
+ | 6 | [左文右图](#li431911954516) | 采用[重复布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section1653271133613),手机上的单列信息,在折叠屏和PC/2in1上重复布局。 |
65
+ | 7 | [竖向视频卡片](#li651243310458) | 采用[重复布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section1653271133613),手机上的左图右文卡片,在折叠屏和PC/2in1上显示更多列该卡片内容。 |
66
+ | 8 | [大视频类新闻](#li917373419216) | 采用[重复布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section1653271133613),手机上单列展示,在折叠屏和PC/2in1上重复布局。 |
67
+ | 9 | [横向滑动小视频](#li1924317507257) | 采用[延伸能力](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-adaptive-layout#延伸能力),使得设备尺寸变宽时,更多的小视频卡片被展示到界面。 |
68
+
69
+ - 顶部文字要闻
70
+
71
+ 使用List组件,设置不同断点下的lanes属性来实现。在sm断点下设置为1,在md断点下设置为2,在lg断点下设置为3。实现不同屏幕尺寸显示更多列数。
72
+
73
+ | 示意图 | sm | md | lg |
74
+ | --- | --- | --- | --- |
75
+ | 效果图 | | | |
76
+
77
+ - 新闻大图卡片
78
+
79
+ 使用Swiper组件,设置在不同断点下的displayCount属性来实现自适应布局延伸布局,新闻大图卡片在sm断点下设置为1,在md断点下设置为2,在lg断点下设置为3。实现在不同屏幕尺寸显示更多内容。
80
+
81
+ | 示意图 | sm | md | l |
82
+ | --- | --- | --- | --- |
83
+ | 效果图 | | | |
84
+
85
+ - 上文下图
86
+
87
+ 使用重复布局配合栅格布局控制不同设备上的内容列数。在sm和md断点下,设置GridCol的span属性为12;在lg断点下,设置GridCol的span属性为6。同时,使用onBreakpointChange函数控制不同设备尺寸上的显示数据数量。在sm和md断点下,渲染数据源包含一条数据;在lg断点下,渲染数据源包含两条数据。
88
+
89
+ | 示意图 | sm | md | lg |
90
+ | --- | --- | --- | --- |
91
+ | 设计能力点 | | | |
92
+ | 效果图 | | | |
93
+
94
+ ```
95
+ // src/main/ets/pages/MediaNews.ets
96
+ build() {
97
+ Column() {
98
+ Header()
99
+ GridRow({
100
+ gutter: $r("app.float.grid_gutter_bigger")
101
+ }) {
102
+ ForEach(this.newsList, (news: News) => {
103
+ GridCol({
104
+ span: {
105
+ sm: Constants.GRID_COL_SPAN[5],
106
+ lg: Constants.GRID_COL_SPAN[4]
107
+ }
108
+ }) {
109
+ NewsWithThreeImages({ news })
110
+ }
111
+ }, (news: News) => news.getNewsID())
112
+ }
113
+ .onBreakpointChange((breakPoints: string) => {
114
+ // Return the number of rendered data records based on the breakpoint situation
115
+ this.newsList = this.multiImageViewModel.getNewsListByBreakpoint(breakPoints);
116
+ })
117
+ .width(Constants.CONTENT_WIDTH)
118
+ }
119
+ .width(Constants.FULL_WIDTH)
120
+ .justifyContent(FlexAlign.Center)
121
+ }
122
+ ```
123
+
124
+ - 左文右图
125
+
126
+ 使用栅格布局,配合断点控制列数:在sm尺寸下设置GridCol的span属性为12,在md及以上尺寸设置为6。同时,使用Text组件的visibility属性配合断点控制摘要部分的显隐:在sm和md断点下设置摘要部分Text组件的visibility为Visibility.Hidden,在lg及以上断点设置为Visibility.Visible。
127
+
128
+ 示意图如下:
129
+
130
+ | 示意图 | sm | md | lg |
131
+ | --- | --- | --- | --- |
132
+ | 设计能力点 | | | |
133
+ | 效果图 | | | |
134
+
135
+ ```
136
+ build() {
137
+ Column() {
138
+ Header()
139
+ GridRow({
140
+ columns: 12,
141
+ gutter: {
142
+ x: { md: Constants.GRID_HORIZONTAL_GUTTER[0], lg: Constants.GRID_HORIZONTAL_GUTTER[1] },
143
+ y: { sm: Constants.GRID_VERTICAL_GUTTER[0], md: Constants.GRID_VERTICAL_GUTTER[1] }
144
+ }
145
+ }) {
146
+ ForEach(this.newsList, (news: News) => {
147
+ GridCol({
148
+ span: {
149
+ sm: Constants.GRID_COL_SPAN[5],
150
+ md: Constants.GRID_COL_SPAN[4]
151
+ }
152
+ }) {
153
+ LeftTextRightImageBgWhite({ news })
154
+ }
155
+ }, (news: News) => news.getNewsID())
156
+ }
157
+ .onBreakpointChange((breakPoints: string) => {
158
+ this.newsList = this.imageAndTextViewModel.getNewsListByBreakpoint(breakPoints);
159
+ })
160
+ .width(Constants.CONTENT_WIDTH)
161
+ }
162
+ .width(Constants.FULL_WIDTH)
163
+ .justifyContent(FlexAlign.Center)
164
+ }
165
+ ```
166
+
167
+ - 竖向视频卡片
168
+
169
+ 采用重复布局,在sm断点下设置GridCol内容占用span为12。在md断点下设置GridCol内容占用span为6。在lg断点下设置GridCol内容占用span为4。同时使用GridRow的onBreakpointChange回调函数控制渲染的数据条数,使其在sm、md、lg断点下分别渲染1、2、3条数据。
170
+
171
+ | 示意图 | sm | md | lg |
172
+ | --- | --- | --- | --- |
173
+ | 设计能力点 | | | |
174
+ | 效果图 | | | |
175
+
176
+ - 大视频类新闻
177
+
178
+ 使用栅格布局配合断点控制显示列数与数据源数量。在sm断点下设置GridCol的span属性为12,返回渲染数据源个数为1个,在md断点下设置span为6,渲染数据源为2个,在lg断点下设置span为4,渲染数据源为3个。
179
+
180
+ | 示意图 | sm | md | lg |
181
+ | --- | --- | --- | --- |
182
+ | 设计能力点 | | | |
183
+ | 效果图 | | | |
184
+
185
+ - 横向滑动小视频
186
+
187
+ 使用Scroll与Row组件实现延伸布局,随着屏幕尺寸的增加,展示更多的小视频数量,延伸布局可参考:[延伸能力](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-adaptive-layout#延伸能力)。
188
+
189
+ | 示意图 | sm | md | lg |
190
+ | --- | --- | --- | --- |
191
+ | 效果图 | | | |
192
+
193
+ ## 热门新闻
194
+
195
+ 热门页提供不同设备的浏览体验。观察UX设计图,进行如下设计:
196
+
197
+ - 将热门新闻页划分为3个部分,如图所示:
198
+
199
+ | 示意图 | sm | md | lg |
200
+ | --- | --- | --- | --- |
201
+ | 效果图 | | | |
202
+
203
+ 实现方案如下表:
204
+
205
+ | 区域编号 | 简介 | 实现方案 |
206
+ | --- | --- | --- |
207
+ | 1 | 底部/侧边页签 | 借助[栅格布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section1061332817545)监听断点变化改变位置。 |
208
+ | 2 | 顶部页签及搜索框 | [栅格布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section1061332817545)监听断点变化实现折行显示,[List](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-list)实现延伸布局,layoutWeight实现拉伸能力。 |
209
+ | 3 | [新闻列表](#li814217391355) | 借助断点监听改变不同断点下的布局方式,在sm断点及sm以下使用[List](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-list),在sm断点以上使用[栅格布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section1061332817545)。 |
210
+
211
+ - 新闻列表
212
+
213
+ 为了实现列表与宫格的灵活切换,可以使用List组件在sm及以下断点时展示内容,而使用栅格布局在sm断点以上展示。在md断点下设置GridRow的columns属性为2,在lg断点下设置columns属性为4。对于需要更大空间的组件内容,设置GridCol的span属性以占用更多份数。
214
+
215
+ ```
216
+ Column() {
217
+ if (this.curBp === 'sm') {
218
+ List({
219
+ space: Constants.LIST_GUTTER
220
+ }) {
221
+ // ...
222
+ }
223
+ .width(Constants.CONTENT_WIDTH)
224
+ } else {
225
+ GridRow({
226
+ columns: {
227
+ md: Constants.GRID_ROW_COLUMNS[1],
228
+ lg: Constants.GRID_ROW_COLUMNS[2]
229
+ },
230
+ gutter: $r("app.float.news_list_common_space")
231
+ }) {
232
+ // ...
233
+ }
234
+ // ...
235
+ }
236
+ }
237
+ ```
238
+
239
+ ## 新闻详情
240
+
241
+ 新闻详情页提供详细新闻信息。观察不同设备上的UX设计图,进行如下设计:
242
+
243
+ - 提供边看边评功能
244
+
245
+ | 示意图 | sm | md | lg |
246
+ | --- | --- | --- | --- |
247
+ | 设计能力点 | | | |
248
+ | 效果图 | | | |
249
+
250
+ 如下表所示,实现方案:
251
+
252
+ | 区域编号 | 简介 | 实现方案 |
253
+ | --- | --- | --- |
254
+ | 1 | 顶部栏 | 使用自适应布局中的[拉伸能力](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-adaptive-layout#拉伸能力),可使用Blank组件实现屏幕宽度变化时,中间空白内容随设备尺寸变化。 |
255
+ | 2 | 新闻标题及发布信息 | 使用[占比能力](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-adaptive-layout#占比能力)保证多设备尺寸下的界面一致。 |
256
+ | 3 | 新闻内容 | 使用[占比能力](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-adaptive-layout#占比能力)保证多设备尺寸下的界面一致。 |
257
+ | 4 | 评论区 | 采用[挪移布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section1153210192360),当设备尺寸变宽时将新闻内容区域和评论区左右布局。 |
258
+ | 5 | 底部工具栏 | 使用[自适应布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-adaptive-layout)中的均分能力,实现设备尺寸变化时图标尺寸不变,图标间距及左右边缘间距均等改变。 |
259
+
260
+ 边看边评实现上可以利用[栅格布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section1061332817545)实现[挪移布局](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-responsive-layout#section1153210192360),在sm断点下设置GridCol对应内容span为12,而在sm以上断点设置对应内容占用span为6,自动实现从新闻内容和评论区的上下布局切换到左右布局。
261
+
262
+ ## 刷新闻
263
+
264
+ 刷新闻界面向用户提供新闻流列表。观察不同设备上的UX设计图,进行如下设计:
265
+
266
+ - 全屏新闻变瀑布流
267
+
268
+ | 示意图 | sm | md | lg |
269
+ | --- | --- | --- | --- |
270
+ | 效果图 | | | |
271
+
272
+ 在刷新闻界面中,开发者可以使用[WaterFlow](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-waterflow)容器,实现一列到多列的切换。在sm断点下依赖断点控制设置WaterFlow的columnsTemplate属性为1,在md断点下设置columnsTemplate为2,在lg断点下设置columnsTemplate为3。
273
+
274
+ ## 精选发现
275
+
276
+ - 瀑布流一列变多列
277
+
278
+ | 示意图 | sm | md | lg |
279
+ | --- | --- | --- | --- |
280
+ | 效果图 | | | |
281
+
282
+ 精选发现界面使用瀑布流一列变多列,主要使用[WaterFlow](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-waterflow)容器实现不同设备的差异化显示。在sm断点下一列显示,在md断点下依赖断点控制设置WaterFlow的columnsTemplate为两列,在lg断点下设置columnsTemplate为三列。
283
+
284
+ #### 示例代码
285
+
286
+ - [多设备新闻阅读界面](https://gitcode.com/harmonyos_samples/multi-news-read)