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.
- package/README.md +121 -0
- package/data/docs/bpta-2in1-window-shape.md +296 -0
- package/data/docs/bpta-abckitts-implements-instrumentation.md +1279 -0
- package/data/docs/bpta-add-watermark.md +379 -0
- package/data/docs/bpta-ads-jump.md +67 -0
- package/data/docs/bpta-agent.md +472 -0
- package/data/docs/bpta-always-on-market-watch.md +703 -0
- package/data/docs/bpta-analysis-of-image-blurring.md +231 -0
- package/data/docs/bpta-analyze-memory-problem.md +17 -0
- package/data/docs/bpta-animation-frame.md +28 -0
- package/data/docs/bpta-antipeep-protection.md +291 -0
- package/data/docs/bpta-app-architecture-overview.md +25 -0
- package/data/docs/bpta-app-asset-protection-design.md +277 -0
- package/data/docs/bpta-app-code-ob.md +180 -0
- package/data/docs/bpta-app-concurrency-design.md +1189 -0
- package/data/docs/bpta-app-data-security.md +397 -0
- package/data/docs/bpta-app-icon-configuration.md +226 -0
- package/data/docs/bpta-app-privacy-protection.md +295 -0
- package/data/docs/bpta-application-aspect-programming-design.md +675 -0
- package/data/docs/bpta-application-cold-start-optimization.md +1397 -0
- package/data/docs/bpta-application-continue-progess.md +285 -0
- package/data/docs/bpta-application-gesture-share.md +468 -0
- package/data/docs/bpta-application-knock-file-share.md +263 -0
- package/data/docs/bpta-application-knock-video-share.md +552 -0
- package/data/docs/bpta-application-latency-optimization-cases.md +615 -0
- package/data/docs/bpta-application-power-analysis.md +15 -0
- package/data/docs/bpta-application-power-optimization.md +12 -0
- package/data/docs/bpta-application-power-test.md +52 -0
- package/data/docs/bpta-application-track-practice.md +595 -0
- package/data/docs/bpta-arkts-high-performance.md +464 -0
- package/data/docs/bpta-arkts-js-memory-analysis.md +111 -0
- package/data/docs/bpta-arkts-language.md +18 -0
- package/data/docs/bpta-arkweb-component-security.md +1134 -0
- package/data/docs/bpta-arkweb_rendering_framework.md +412 -0
- package/data/docs/bpta-aspect-implements-aop.md +505 -0
- package/data/docs/bpta-audio-and-video.md +30 -0
- package/data/docs/bpta-audio-cast.md +460 -0
- package/data/docs/bpta-audio-focus-management.md +862 -0
- package/data/docs/bpta-audio-in-ear-monitor.md +803 -0
- package/data/docs/bpta-audio-playback-series.md +16 -0
- package/data/docs/bpta-audio-record-base-on-audiocapturer.md +188 -0
- package/data/docs/bpta-audio-record-base-on-avrecorder-arkts.md +179 -0
- package/data/docs/bpta-audio-record-base-on-avrecorder.md +207 -0
- package/data/docs/bpta-audio-record-base-on-avscreencapture.md +165 -0
- package/data/docs/bpta-audio-record-base-on-ohaudio.md +162 -0
- package/data/docs/bpta-audio-record-overview.md +34 -0
- package/data/docs/bpta-audio-record.md +16 -0
- package/data/docs/bpta-audio-ripple-animation.md +198 -0
- package/data/docs/bpta-audio-video-synchronization.md +508 -0
- package/data/docs/bpta-audio-video.md +15 -0
- package/data/docs/bpta-automated-testing-frameworks.md +481 -0
- package/data/docs/bpta-avplayer-basic-control.md +533 -0
- package/data/docs/bpta-avplayer-embeded-network-video.md +486 -0
- package/data/docs/bpta-avplayer-embeded-short-video.md +512 -0
- package/data/docs/bpta-avplayer-long-video.md +907 -0
- package/data/docs/bpta-avplayer-short-video.md +158 -0
- package/data/docs/bpta-avplayer-video-practices.md +15 -0
- package/data/docs/bpta-avscreencapture-for-screen-recording.md +1121 -0
- package/data/docs/bpta-back-task-implement.md +317 -0
- package/data/docs/bpta-background-blur.md +316 -0
- package/data/docs/bpta-background-sensors-baned-analysis.md +93 -0
- package/data/docs/bpta-best-practices-long-list.md +891 -0
- package/data/docs/bpta-best-practices-overview.md +48 -0
- package/data/docs/bpta-bluetooth-low-energy.md +905 -0
- package/data/docs/bpta-buffer-mode-transcoding.md +728 -0
- package/data/docs/bpta-buffer-power-optimization.md +224 -0
- package/data/docs/bpta-camera-shot2see.md +368 -0
- package/data/docs/bpta-card-update-and-data-interaction.md +670 -0
- package/data/docs/bpta-carousel-graphic-works.md +379 -0
- package/data/docs/bpta-cell-phone.md +13 -0
- package/data/docs/bpta-click-to-click-response-optimization.md +264 -0
- package/data/docs/bpta-click-to-complete-delay-analysis.md +637 -0
- package/data/docs/bpta-collaboration-office.md +1178 -0
- package/data/docs/bpta-comment-reply-pop-up-window.md +523 -0
- package/data/docs/bpta-common-list-flows.md +688 -0
- package/data/docs/bpta-common-list-operations.md +828 -0
- package/data/docs/bpta-common-network-query.md +784 -0
- package/data/docs/bpta-comparative_practice_of_taskpool_and_worker.md +381 -0
- package/data/docs/bpta-compatible-scheme.md +11 -0
- package/data/docs/bpta-complex-type-pass.md +868 -0
- package/data/docs/bpta-component-nesting-optimization.md +421 -0
- package/data/docs/bpta-component-reuse-issue-diagnosis-and-analysis.md +637 -0
- package/data/docs/bpta-component-reuse.md +1258 -0
- package/data/docs/bpta-concurrency-capability.md +23 -0
- package/data/docs/bpta-concurrent-optimization.md +369 -0
- package/data/docs/bpta-content-creation.md +646 -0
- package/data/docs/bpta-continue-cast.md +702 -0
- package/data/docs/bpta-continue-data.md +335 -0
- package/data/docs/bpta-continue.md +1323 -0
- package/data/docs/bpta-control-rendering-range.md +29 -0
- package/data/docs/bpta-controlling-background-process-cpu.md +31 -0
- package/data/docs/bpta-crash-monitor-practice.md +116 -0
- package/data/docs/bpta-cross-domain-solutions-for-web-pages.md +308 -0
- package/data/docs/bpta-cross-end-migration.md +13 -0
- package/data/docs/bpta-cross-module-reference.md +406 -0
- package/data/docs/bpta-cross-platform-compatibility.md +321 -0
- package/data/docs/bpta-custom-camera-photo.md +454 -0
- package/data/docs/bpta-custom-camera-preview.md +1170 -0
- package/data/docs/bpta-custom-camera-video.md +322 -0
- package/data/docs/bpta-custom-font-settings.md +354 -0
- package/data/docs/bpta-custom-hvigor-plugin.md +159 -0
- package/data/docs/bpta-custom-keyboard.md +519 -0
- package/data/docs/bpta-customdialog-selection-and-development.md +406 -0
- package/data/docs/bpta-dark-mode-adaptation.md +321 -0
- package/data/docs/bpta-deal-stride-solution.md +261 -0
- package/data/docs/bpta-decrease_pakage_size.md +126 -0
- package/data/docs/bpta-delayed-trigger-operation.md +215 -0
- package/data/docs/bpta-desktop-shortcuts.md +180 -0
- package/data/docs/bpta-detection.md +12 -0
- package/data/docs/bpta-developing-high-performance-ui.md +19 -0
- package/data/docs/bpta-development-scenarios-for-tabs.md +934 -0
- package/data/docs/bpta-dialog-encapsulation.md +201 -0
- package/data/docs/bpta-dispose-highly-loaded-component-render.md +352 -0
- package/data/docs/bpta-distribute-drag-cast.md +60 -0
- package/data/docs/bpta-distributed-pasteboard-cast.md +88 -0
- package/data/docs/bpta-distributed-pasteboard.md +314 -0
- package/data/docs/bpta-drawing-capability-improve-performance.md +436 -0
- package/data/docs/bpta-dynamic-link-library.md +272 -0
- package/data/docs/bpta-easygo-parallel.md +402 -0
- package/data/docs/bpta-fair-use-animation.md +1693 -0
- package/data/docs/bpta-file-transmission-based-on-sfft.md +265 -0
- package/data/docs/bpta-file-upload-and-download-performance.md +484 -0
- package/data/docs/bpta-foldable-guide.md +205 -0
- package/data/docs/bpta-folded-hover.md +202 -0
- package/data/docs/bpta-form-kit.md +12 -0
- package/data/docs/bpta-frontend-invisible-animation-analysis.md +187 -0
- package/data/docs/bpta-full-scenario-collaborative-development.md +13 -0
- package/data/docs/bpta-fuzzy-scene-performance-optimization.md +256 -0
- package/data/docs/bpta-game-prelaunch-practice.md +175 -0
- package/data/docs/bpta-general-comments.md +17 -0
- package/data/docs/bpta-gestures-practice.md +619 -0
- package/data/docs/bpta-global-state-management-state-store.md +472 -0
- package/data/docs/bpta-gpu-acceleration-practices.md +11 -0
- package/data/docs/bpta-graphic-drawing-practices.md +13 -0
- package/data/docs/bpta-grid-based-on-scrollcomponents.md +1112 -0
- package/data/docs/bpta-grid-drag-swap.md +725 -0
- package/data/docs/bpta-hadss_dialoghub.md +786 -0
- package/data/docs/bpta-harmony-application-security.md +1253 -0
- package/data/docs/bpta-hdrtosdr.md +439 -0
- package/data/docs/bpta-hdrvivid.md +700 -0
- package/data/docs/bpta-high-cpu-load-analysis.md +113 -0
- package/data/docs/bpta-high-performance-json-parsing.md +263 -0
- package/data/docs/bpta-high-performance-protobuf-parsing.md +259 -0
- package/data/docs/bpta-hmos-live-stream-audio-call.md +140 -0
- package/data/docs/bpta-hmos-live-stream-solution.md +495 -0
- package/data/docs/bpta-hmrouter.md +659 -0
- package/data/docs/bpta-hopping.md +60 -0
- package/data/docs/bpta-hwc-self-rendering-layer-analysis.md +77 -0
- package/data/docs/bpta-image-processing-practices.md +13 -0
- package/data/docs/bpta-image-to-video-synthesis.md +459 -0
- package/data/docs/bpta-image-white-lump-solution.md +282 -0
- package/data/docs/bpta-image_get_and_save.md +120 -0
- package/data/docs/bpta-implement-timeline-based-on-canvas.md +493 -0
- package/data/docs/bpta-implementing-image-filters.md +406 -0
- package/data/docs/bpta-implementing-image-resizable.md +270 -0
- package/data/docs/bpta-improve-layout-performance.md +547 -0
- package/data/docs/bpta-improve-running-efficiency.md +187 -0
- package/data/docs/bpta-improve_grid_performance.md +268 -0
- package/data/docs/bpta-input-method-framework.md +12 -0
- package/data/docs/bpta-intent-recommend-practice.md +313 -0
- package/data/docs/bpta-js-leak-watcher.md +153 -0
- package/data/docs/bpta-kernel-memory-analysis.md +38 -0
- package/data/docs/bpta-keyboard-layout-adapt.md +725 -0
- package/data/docs/bpta-landscape-and-portrait-development.md +947 -0
- package/data/docs/bpta-layered-architecture-design.md +82 -0
- package/data/docs/bpta-lazyforeach-optimization.md +217 -0
- package/data/docs/bpta-link-between-apps-overview.md +99 -0
- package/data/docs/bpta-list-based-on-scrollcomponents.md +1643 -0
- package/data/docs/bpta-lite-wearable-guide.md +1899 -0
- package/data/docs/bpta-live-form-development-practice.md +544 -0
- package/data/docs/bpta-live-streaming-optimization.md +397 -0
- package/data/docs/bpta-local-file-and-data-multithreaded-io.md +367 -0
- package/data/docs/bpta-local-file.md +11 -0
- package/data/docs/bpta-lock-screen-immersive-live-window.md +473 -0
- package/data/docs/bpta-long-snapshot-practice.md +1046 -0
- package/data/docs/bpta-low-power-consumption-of-background-tasks.md +14 -0
- package/data/docs/bpta-low-power-consumption-of-foreground-tasks.md +14 -0
- package/data/docs/bpta-low-power-design-in-dark-mode.md +418 -0
- package/data/docs/bpta-ltpo-description.md +323 -0
- package/data/docs/bpta-maleoon-gpu-best-practices.md +1297 -0
- package/data/docs/bpta-malloc-dispatch-table.md +144 -0
- package/data/docs/bpta-managing-audio-input-devices.md +350 -0
- package/data/docs/bpta-managing-audio-output-devices.md +399 -0
- package/data/docs/bpta-mate-book-fold.md +229 -0
- package/data/docs/bpta-matetv-guide.md +223 -0
- package/data/docs/bpta-matext-guide.md +269 -0
- package/data/docs/bpta-memory-basic-knowledge.md +71 -0
- package/data/docs/bpta-memory-optimization.md +545 -0
- package/data/docs/bpta-modular-design.md +282 -0
- package/data/docs/bpta-multi-device-adaptive-layout.md +775 -0
- package/data/docs/bpta-multi-device-adaptive.md +11 -0
- package/data/docs/bpta-multi-device-camera.md +584 -0
- package/data/docs/bpta-multi-device-collaboration.md +19 -0
- package/data/docs/bpta-multi-device-component-layout.md +190 -0
- package/data/docs/bpta-multi-device-design-principles.md +26 -0
- package/data/docs/bpta-multi-device-function.md +99 -0
- package/data/docs/bpta-multi-device-hardware.md +12 -0
- package/data/docs/bpta-multi-device-ide.md +124 -0
- package/data/docs/bpta-multi-device-interaction.md +11 -0
- package/data/docs/bpta-multi-device-layout-overview.md +47 -0
- package/data/docs/bpta-multi-device-overview.md +340 -0
- package/data/docs/bpta-multi-device-page-layout.md +699 -0
- package/data/docs/bpta-multi-device-page.md +19 -0
- package/data/docs/bpta-multi-device-resource.md +122 -0
- package/data/docs/bpta-multi-device-responsive-layout.md +1274 -0
- package/data/docs/bpta-multi-device-responsive.md +14 -0
- package/data/docs/bpta-multi-device-screen-diff.md +197 -0
- package/data/docs/bpta-multi-device-screen-layout.md +834 -0
- package/data/docs/bpta-multi-device-start.md +376 -0
- package/data/docs/bpta-multi-device-ui-development.md +27 -0
- package/data/docs/bpta-multi-device-window-direction.md +1322 -0
- package/data/docs/bpta-multi-device-window-immersive.md +364 -0
- package/data/docs/bpta-multi-device-window-mode.md +1293 -0
- package/data/docs/bpta-multi-device-window.md +13 -0
- package/data/docs/bpta-multi-device.md +13 -0
- package/data/docs/bpta-multi-interaction.md +368 -0
- package/data/docs/bpta-multi-mobile-payment.md +282 -0
- package/data/docs/bpta-multi-music-app-overview.md +365 -0
- package/data/docs/bpta-multi-settings-application-page.md +163 -0
- package/data/docs/bpta-multi-tab-practice.md +750 -0
- package/data/docs/bpta-multi-target.md +490 -0
- package/data/docs/bpta-multi-window-practice.md +795 -0
- package/data/docs/bpta-multi_game.md +472 -0
- package/data/docs/bpta-music-card.md +1916 -0
- package/data/docs/bpta-music-playback-scenarios.md +120 -0
- package/data/docs/bpta-native-memory-analysis.md +101 -0
- package/data/docs/bpta-native-sub-main-comm.md +323 -0
- package/data/docs/bpta-navigation-scenarios.md +69 -0
- package/data/docs/bpta-network-ca-security.md +241 -0
- package/data/docs/bpta-network-reconnection.md +327 -0
- package/data/docs/bpta-network-resources.md +24 -0
- package/data/docs/bpta-news-reading.md +12 -0
- package/data/docs/bpta-news_homepage.md +449 -0
- package/data/docs/bpta-object-serialization-performance.md +12 -0
- package/data/docs/bpta-one-shot-to-the-end.md +932 -0
- package/data/docs/bpta-online-video-playback-lags-practice.md +298 -0
- package/data/docs/bpta-optimization-overview.md +227 -0
- package/data/docs/bpta-optimization-tool-practice.md +20 -0
- package/data/docs/bpta-package-structure.md +13 -0
- package/data/docs/bpta-pad-guide.md +268 -0
- package/data/docs/bpta-page-brightness-settings.md +256 -0
- package/data/docs/bpta-page-transition.md +583 -0
- package/data/docs/bpta-pc-guide.md +438 -0
- package/data/docs/bpta-pc.md +12 -0
- package/data/docs/bpta-perceived-smoothness.md +49 -0
- package/data/docs/bpta-performance-detection.md +160 -0
- package/data/docs/bpta-performance-guide-reading.md +50 -0
- package/data/docs/bpta-performance-mainthread-consumption-detection.md +11 -0
- package/data/docs/bpta-performance-optimization.md +23 -0
- package/data/docs/bpta-performance-runtime-detection.md +13 -0
- package/data/docs/bpta-performance-sliding-frame-drop-detection.md +19 -0
- package/data/docs/bpta-performance-startup-time-detection.md +13 -0
- package/data/docs/bpta-permission-application.md +318 -0
- package/data/docs/bpta-permission-timeout-analysis.md +51 -0
- package/data/docs/bpta-photo.md +15 -0
- package/data/docs/bpta-picture-preview.md +464 -0
- package/data/docs/bpta-picture.md +12 -0
- package/data/docs/bpta-playing-formatted-audio-based-avplayer-arkts.md +481 -0
- package/data/docs/bpta-playing-formatted-audio-based-avplayer-cpp.md +593 -0
- package/data/docs/bpta-playing-pcm-audio-based-audiorenderer.md +959 -0
- package/data/docs/bpta-playing-pcm-audio-based-ohaudio.md +599 -0
- package/data/docs/bpta-playing-short-audio-based-soundpool.md +182 -0
- package/data/docs/bpta-positioning.md +364 -0
- package/data/docs/bpta-power-basic-quality-test.md +35 -0
- package/data/docs/bpta-power-consumption-analysis.md +12 -0
- package/data/docs/bpta-power-consumption-develop-analysis.md +12 -0
- package/data/docs/bpta-power-consumption-experience.md +119 -0
- package/data/docs/bpta-power-consumption-runtime-analysis.md +15 -0
- package/data/docs/bpta-power_overview.md +26 -0
- package/data/docs/bpta-pptimized-component-drawing.md +27 -0
- package/data/docs/bpta-pre-connect.md +133 -0
- package/data/docs/bpta-preloading-resources.md +21 -0
- package/data/docs/bpta-program-framework.md +15 -0
- package/data/docs/bpta-properly-use-foreground-resources.md +22 -0
- package/data/docs/bpta-purax-guide.md +215 -0
- package/data/docs/bpta-quality-overview.md +79 -0
- package/data/docs/bpta-reader-page-flip.md +890 -0
- package/data/docs/bpta-reasonable-audio-playback-use.md +42 -0
- package/data/docs/bpta-reasonable-audio-use.md +163 -0
- package/data/docs/bpta-reasonable-bluetooth-use.md +52 -0
- package/data/docs/bpta-reasonable-gps-use.md +59 -0
- package/data/docs/bpta-reasonable-network-use.md +105 -0
- package/data/docs/bpta-reasonable-position-navigation-use.md +47 -0
- package/data/docs/bpta-reasonable-request-use.md +77 -0
- package/data/docs/bpta-reasonable-sensor-use.md +53 -0
- package/data/docs/bpta-reasonable-system-use.md +67 -0
- package/data/docs/bpta-recommended-use-of-device-id.md +79 -0
- package/data/docs/bpta-reduce-layout-nodes.md +30 -0
- package/data/docs/bpta-reduce-time-consuming.md +36 -0
- package/data/docs/bpta-redundancy-refresh-guide.md +409 -0
- package/data/docs/bpta-render-web-using-same-layer-render.md +601 -0
- package/data/docs/bpta-resource-and-storage-optimization.md +14 -0
- package/data/docs/bpta-retrieve-process-memory-info.md +49 -0
- package/data/docs/bpta-rich-text-display.md +475 -0
- package/data/docs/bpta-rich-text-editor.md +426 -0
- package/data/docs/bpta-risk-control-engine.md +146 -0
- package/data/docs/bpta-scenario-performance-optimization.md +17 -0
- package/data/docs/bpta-scenario-power-optimization.md +12 -0
- package/data/docs/bpta-scenario-stability-address-sanitizer.md +210 -0
- package/data/docs/bpta-scenario-stability-app-freeze.md +615 -0
- package/data/docs/bpta-scenario-stability-cppcrash.md +516 -0
- package/data/docs/bpta-scenario-stability-exception-exit.md +12 -0
- package/data/docs/bpta-scenario-stability-jscrash.md +922 -0
- package/data/docs/bpta-scenario-stability-leak.md +276 -0
- package/data/docs/bpta-scenario-stability.md +14 -0
- package/data/docs/bpta-screen-flicker-solution.md +480 -0
- package/data/docs/bpta-shared-bicycle.md +509 -0
- package/data/docs/bpta-short-video-base-adaptivevideo.md +403 -0
- package/data/docs/bpta-smart-reach.md +306 -0
- package/data/docs/bpta-smartwatch.md +755 -0
- package/data/docs/bpta-smartwatchnavigation.md +384 -0
- package/data/docs/bpta-smooth-application-design.md +225 -0
- package/data/docs/bpta-smooth-switching.md +294 -0
- package/data/docs/bpta-social-communications.md +11 -0
- package/data/docs/bpta-social-share.md +637 -0
- package/data/docs/bpta-solutions-to-special-issues.md +12 -0
- package/data/docs/bpta-sound-quality-switching.md +422 -0
- package/data/docs/bpta-spatiality-immersive.md +531 -0
- package/data/docs/bpta-special-text-recognition.md +137 -0
- package/data/docs/bpta-stability-address-illegal-way.md +190 -0
- package/data/docs/bpta-stability-address-sanitizer-catagory.md +212 -0
- package/data/docs/bpta-stability-address-sanitizer-faq.md +32 -0
- package/data/docs/bpta-stability-address-sanitizer-opt.md +170 -0
- package/data/docs/bpta-stability-address-sanitizer-overview.md +23 -0
- package/data/docs/bpta-stability-address-sanitizer-principle.md +179 -0
- package/data/docs/bpta-stability-analysis.md +17 -0
- package/data/docs/bpta-stability-app-analyzer.md +11 -0
- package/data/docs/bpta-stability-app-crash-cpp-way.md +200 -0
- package/data/docs/bpta-stability-app-crash-js-way.md +148 -0
- package/data/docs/bpta-stability-app-crash.md +13 -0
- package/data/docs/bpta-stability-app-freeze-ark-runtime.md +339 -0
- package/data/docs/bpta-stability-app-freeze-opt.md +80 -0
- package/data/docs/bpta-stability-app-freeze-way.md +410 -0
- package/data/docs/bpta-stability-app-freeze.md +12 -0
- package/data/docs/bpta-stability-app-killed-way.md +49 -0
- package/data/docs/bpta-stability-ark-detection.md +12 -0
- package/data/docs/bpta-stability-ark-exception-detection.md +38 -0
- package/data/docs/bpta-stability-ark-runtime-detection.md +134 -0
- package/data/docs/bpta-stability-asan-detection.md +450 -0
- package/data/docs/bpta-stability-coding-standard-api.md +2054 -0
- package/data/docs/bpta-stability-coding-standard-cpp.md +91 -0
- package/data/docs/bpta-stability-coding-standard-libuv.md +772 -0
- package/data/docs/bpta-stability-coding-standard-ndk-arkts.md +189 -0
- package/data/docs/bpta-stability-coding-standard-node.md +478 -0
- package/data/docs/bpta-stability-coding-standard.md +16 -0
- package/data/docs/bpta-stability-cpp-crash-opt.md +346 -0
- package/data/docs/bpta-stability-detection.md +14 -0
- package/data/docs/bpta-stability-deveco-testing.md +73 -0
- package/data/docs/bpta-stability-develop-detection.md +17 -0
- package/data/docs/bpta-stability-exception-exit-opt.md +12 -0
- package/data/docs/bpta-stability-fault-log.md +14 -0
- package/data/docs/bpta-stability-fault-type.md +31 -0
- package/data/docs/bpta-stability-file-handle-detection.md +96 -0
- package/data/docs/bpta-stability-gwpasan-detection.md +588 -0
- package/data/docs/bpta-stability-hwasan-detection.md +360 -0
- package/data/docs/bpta-stability-ide-static-detection.md +343 -0
- package/data/docs/bpta-stability-js-crash-opt.md +21 -0
- package/data/docs/bpta-stability-js-memleak-detection.md +214 -0
- package/data/docs/bpta-stability-leak-detection.md +15 -0
- package/data/docs/bpta-stability-leak-opt.md +251 -0
- package/data/docs/bpta-stability-leak-way.md +459 -0
- package/data/docs/bpta-stability-log-specs.md +31 -0
- package/data/docs/bpta-stability-log-standard-hilog.md +191 -0
- package/data/docs/bpta-stability-log-standard.md +11 -0
- package/data/docs/bpta-stability-memleak-detection-overview.md +109 -0
- package/data/docs/bpta-stability-native-memleak-detection.md +204 -0
- package/data/docs/bpta-stability-operate-apm.md +113 -0
- package/data/docs/bpta-stability-operate-app-event.md +320 -0
- package/data/docs/bpta-stability-operate-event.md +11 -0
- package/data/docs/bpta-stability-operate.md +15 -0
- package/data/docs/bpta-stability-opt.md +18 -0
- package/data/docs/bpta-stability-overview.md +17 -0
- package/data/docs/bpta-stability-ram-detection.md +17 -0
- package/data/docs/bpta-stability-runtime-address-sanitizer-detection.md +21 -0
- package/data/docs/bpta-stability-runtime-appkilled-detection.md +44 -0
- package/data/docs/bpta-stability-runtime-crash-detection.md +14 -0
- package/data/docs/bpta-stability-runtime-detection.md +14 -0
- package/data/docs/bpta-stability-runtime-exception-exit-detection.md +12 -0
- package/data/docs/bpta-stability-runtime-freeze-detection.md +21 -0
- package/data/docs/bpta-stability-runtime-leak-detection.md +31 -0
- package/data/docs/bpta-stability-testing.md +11 -0
- package/data/docs/bpta-stability-thread-detection.md +11 -0
- package/data/docs/bpta-stability-thread-leak-detection.md +35 -0
- package/data/docs/bpta-stability-tsan-detection.md +477 -0
- package/data/docs/bpta-stability-ubsan-detection.md +350 -0
- package/data/docs/bpta-startup-response-optimization.md +12 -0
- package/data/docs/bpta-state-refresh.md +48 -0
- package/data/docs/bpta-static-scenarios.md +63 -0
- package/data/docs/bpta-status-management.md +872 -0
- package/data/docs/bpta-surface-encoder.md +427 -0
- package/data/docs/bpta-swiper_high_performance_development_guide.md +357 -0
- package/data/docs/bpta-tablet-pc.md +11 -0
- package/data/docs/bpta-taskpool_usage_specifications_and_faqs.md +625 -0
- package/data/docs/bpta-text-expand-collapse.md +274 -0
- package/data/docs/bpta-texture-compression-improve-performance.md +336 -0
- package/data/docs/bpta-thread-priority-setting.md +233 -0
- package/data/docs/bpta-threads-serialization-timeout-analysis.md +169 -0
- package/data/docs/bpta-time-optimization-of-the-main-thread.md +1239 -0
- package/data/docs/bpta-travel-navigation.md +11 -0
- package/data/docs/bpta-tv.md +11 -0
- package/data/docs/bpta-ui-component-encapsulation.md +585 -0
- package/data/docs/bpta-ui-component-performance-optimization.md +597 -0
- package/data/docs/bpta-ui-dynamic-operations.md +618 -0
- package/data/docs/bpta-ui-skip-analysis.md +191 -0
- package/data/docs/bpta-unified-drag-and-drop.md +1189 -0
- package/data/docs/bpta-use-of-background-hardware-resources.md +16 -0
- package/data/docs/bpta-use-of-background-software-resources.md +14 -0
- package/data/docs/bpta-use-of-background-tasks.md +23 -0
- package/data/docs/bpta-utilize-hwc-efficiently.md +461 -0
- package/data/docs/bpta-vdeocast.md +558 -0
- package/data/docs/bpta-video-adaptation-based-web.md +462 -0
- package/data/docs/bpta-video-barrage.md +68 -0
- package/data/docs/bpta-video-codec.md +42 -0
- package/data/docs/bpta-video-component-long-video.md +659 -0
- package/data/docs/bpta-video-component-short-video.md +337 -0
- package/data/docs/bpta-video-layer.md +32 -0
- package/data/docs/bpta-video-practices.md +12 -0
- package/data/docs/bpta-video-render.md +1225 -0
- package/data/docs/bpta-video-rom.md +37 -0
- package/data/docs/bpta-video-thumbnail.md +179 -0
- package/data/docs/bpta-video-wifi.md +40 -0
- package/data/docs/bpta-vsync-power-optimization.md +116 -0
- package/data/docs/bpta-waterflow-based-on-scrollcomponents.md +989 -0
- package/data/docs/bpta-waterflow-operations.md +991 -0
- package/data/docs/bpta-waterflow-performance-optimization.md +191 -0
- package/data/docs/bpta-wavewheel-for-image-editor.md +421 -0
- package/data/docs/bpta-wear.md +12 -0
- package/data/docs/bpta-web-adaptation.md +451 -0
- package/data/docs/bpta-web-app-jump-and-pull-up.md +310 -0
- package/data/docs/bpta-web-click-response-delay-analysis.md +164 -0
- package/data/docs/bpta-web-completion-delay-analysis.md +209 -0
- package/data/docs/bpta-web-develop-optimization.md +2596 -0
- package/data/docs/bpta-web-development.md +15 -0
- package/data/docs/bpta-web-frame-rate-performance-analysis.md +252 -0
- package/data/docs/bpta-web-interceptor.md +724 -0
- package/data/docs/bpta-web-performance-optimization.md +11 -0
- package/data/docs/bpta-window-and-screen-management.md +12 -0
- package/data/docs/bpta-zhenlv.md +559 -0
- package/data/docs/changelog.md +1410 -0
- package/data/docs/low-power-consumption-suggestions.md +246 -0
- package/data/docs/multi-business-office.md +275 -0
- package/data/docs/multi-communication-app.md +240 -0
- package/data/docs/multi-community-app.md +257 -0
- package/data/docs/multi-convenient-life.md +501 -0
- package/data/docs/multi-financial-app.md +288 -0
- package/data/docs/multi-news-read.md +286 -0
- package/data/docs/multi-picture-app.md +219 -0
- package/data/docs/multi-shopping-price-comparison.md +254 -0
- package/data/docs/multi-short-video-app.md +315 -0
- package/data/docs/multi-ticket-class.md +458 -0
- package/data/docs/multi-travel-accommodation.md +361 -0
- package/data/docs/multi-travel-navigation.md +449 -0
- package/data/docs/multi-video-app.md +492 -0
- package/data/index.md +2886 -0
- package/dist/data.js +180 -0
- package/dist/index.js +203 -0
- package/dist/search.js +102 -0
- package/package.json +57 -0
- package/scripts/trim-code-extra.mjs +78 -0
- package/scripts/trim-code.mjs +106 -0
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
# 多设备音乐界面
|
|
2
|
+
|
|
3
|
+
> 来源: https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-music-app-overview
|
|
4
|
+
> 文档标识(fileName): bpta-multi-music-app-overview
|
|
5
|
+
> 目录(catalogName): best-practices
|
|
6
|
+
> 语言: cn
|
|
7
|
+
> 更新时间: 2026-06-23 03:37:31
|
|
8
|
+
> 导航地址: /hmos/hmos-dp1
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
#### 概述
|
|
12
|
+
|
|
13
|
+
本文将介绍如何在音乐播放类应用的实际开发过程中实现“一次开发,多端部署”。收听音乐是大众最受欢迎的日常娱乐方式之一,而音乐播放应用是其核心载体。多设备音乐播放案例围绕首页、歌单详情页和全屏播放页等核心页面展开,覆盖了用户从音乐浏览、歌单查看到沉浸式播放的完整音乐欣赏链路。文章重点介绍关键布局能力及对应实现。当前应用已适配的设备包括:直板机、双折叠(Mate X系列)、三折叠、阔折叠、平板、电脑、智慧屏和智能穿戴。
|
|
14
|
+
|
|
15
|
+

|
|
16
|
+
|
|
17
|
+
阅读本文前,建议开发者先了解[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)相关知识。
|
|
18
|
+
|
|
19
|
+
下文将从UX设计、工程管理、页面开发三个方面系统介绍音乐播放类应用在实际开发中的最佳实践,为开发者提供可借鉴的实现思路。
|
|
20
|
+
|
|
21
|
+
- [UX设计](#section1496102654513):介绍音乐播放类应用的交互逻辑与通用设计要点,开发者可直接参考同类设计要点。
|
|
22
|
+
- [工程管理](#section2146193418540):介绍“一多”工程所需配置,并推荐采用结构更清晰的三层架构。
|
|
23
|
+
- [移动端页面](#section169906412567)、[电脑端页面](#section3647191712520)、[智慧屏页面](#section13448146153217)、[智能穿戴页面](#section95447563587):遵循实际应用开发流程,以页面为基本单元,依次讲解窗口适配、页面开发的设计思路与实现方法。
|
|
24
|
+
|
|
25
|
+
#### UX设计
|
|
26
|
+
|
|
27
|
+
应用的UX设计可参考[音乐听书](https://developer.huawei.com/consumer/cn/doc/design-guides/responsive-design-examples1-0000001957369849#section12973333171715)的多设备响应式设计指南,设计参考图如下所示。
|
|
28
|
+
|
|
29
|
+

|
|
30
|
+
|
|
31
|
+
#### 工程管理
|
|
32
|
+
|
|
33
|
+
为确保“一多”工程代码的复用性与可维护性,建议开发者采用分层架构组织代码工程。该架构将项目划分为产品定制层(products)、基础特性层(features)和公共能力层(common)三个层级,各层级权责明确且功能独立,为开发者提供了清晰、高效且可扩展的设计方案。关于分层架构的具体设计细节,可参考[分层架构设计](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-layered-architecture-design)。
|
|
34
|
+
|
|
35
|
+
## 创建工程
|
|
36
|
+
|
|
37
|
+
建议开发者参考[多设备工程部署与发布](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-ide)相关内容,掌握分层架构工程的创建与配置方法后,创建模板项目工程。根据多设备音乐的开发需求进行针对性修改,确保工程架构贴合实际业务需求。
|
|
38
|
+
|
|
39
|
+
## 工程结构
|
|
40
|
+
|
|
41
|
+
多设备音乐应用采用推荐的分层架构,将代码工程按products、features、common三个层级组织。各层级设计如下:
|
|
42
|
+
|
|
43
|
+
- products层:针对不同终端形态提供独立入口与页面组装。例如,products/default面向手机/平板类形态;products/watch、products/tv、products/pc分别面向穿戴、智慧屏、电脑等。
|
|
44
|
+
- features层:包含三个核心业务模块——首页、列表页和播放页。为各模块分别创建对应HAR包,供products层按需引用。各模块相对独立,互不依赖,便于后续维护与迭代。
|
|
45
|
+
- common层:为实现代码复用并减少冗余,集中存放公共常量、日志工具类及窗口管理工具等基础能力,供其他模块统一调用。
|
|
46
|
+
|
|
47
|
+
工程结构如下:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
├── common // 公共能力层目录
|
|
51
|
+
│ └── musicbasic // 基础HAR:歌曲数据、全局状态、断点与窗口工具
|
|
52
|
+
│ └── src/main // 模块标准源码与资源根目录
|
|
53
|
+
│ ├── ets // ArkTS业务源码根目录
|
|
54
|
+
│ │ ├── api // 接口DTO与映射
|
|
55
|
+
│ │ ├── constants // 公共常量
|
|
56
|
+
│ │ ├── data // 歌曲/歌单/推荐Feed等行数据模型
|
|
57
|
+
│ │ ├── db // 内存曲库等数据访问
|
|
58
|
+
│ │ ├── model // 全局播控状态、菜单、歌曲实体等
|
|
59
|
+
│ │ └── util // 日志、断点、窗口、持久化门面等工具
|
|
60
|
+
│ └── resources // 字符串、颜色、媒体与rawfile资源
|
|
61
|
+
├── features // 特性HAR:按业务能力拆分
|
|
62
|
+
│ ├── player // 播放器:全屏页、歌词、音频播放封装
|
|
63
|
+
│ │ └── src/main // 模块标准源码与资源根目录
|
|
64
|
+
│ │ ├── ets // ArkTS业务源码根目录
|
|
65
|
+
│ │ │ ├── constant // 播放器与歌词相关常量
|
|
66
|
+
│ │ │ ├── model // 播放UI模型、媒体服务、歌词条目
|
|
67
|
+
│ │ │ ├── util // LRC、后台播放、播放意图壳层等
|
|
68
|
+
│ │ │ ├── view // 播放页 UI 组件(含穿戴等形态适配)
|
|
69
|
+
│ │ │ └── viewmodel // 播放页ViewModel
|
|
70
|
+
│ │ └── resources // 模块字符串、图标与主题资源
|
|
71
|
+
│ ├── playlist // 歌单:详情页、分栏、迷你播控条
|
|
72
|
+
│ │ └── src/main // 模块标准源码与资源根目录
|
|
73
|
+
│ │ ├── ets // ArkTS业务源码根目录
|
|
74
|
+
│ │ │ ├── model // 歌单与列表UI模型、数据源
|
|
75
|
+
│ │ │ ├── util // 歌单演示数据等工具
|
|
76
|
+
│ │ │ ├── view // 歌单页与迷你条 UI(含穿戴路由相关)
|
|
77
|
+
│ │ │ └── viewmodel // 歌单与播控联动ViewModel
|
|
78
|
+
│ │ └── resources // 模块字符串与图标资源
|
|
79
|
+
│ └── recommendation // 推荐首页、宽屏面板、首页迷你条
|
|
80
|
+
│ └── src/main // 模块标准源码与资源根目录
|
|
81
|
+
│ ├── ets // ArkTS业务源码根目录
|
|
82
|
+
│ │ ├── model // 推荐区块UI模型与数据源
|
|
83
|
+
│ │ ├── util // 推荐演示数据工具
|
|
84
|
+
│ │ ├── view // 推荐首页、迷你条、宽屏面板与穿戴首页等 UI
|
|
85
|
+
│ │ └── viewmodel // 推荐首页ViewModel
|
|
86
|
+
│ └── resources // 模块字符串、横幅与主题资源
|
|
87
|
+
└── products // 各设备形态HAP产品入口
|
|
88
|
+
├── default // 手机/平板应用入口
|
|
89
|
+
│ └── src/main // 模块标准源码与资源根目录
|
|
90
|
+
│ ├── ets // ArkTS入口与页面根目录
|
|
91
|
+
│ │ ├── entryability // 主入口Ability
|
|
92
|
+
│ │ ├── pages // 页面路由(主导航与壳层)
|
|
93
|
+
│ │ └── phonebackupextability // 手机侧备份扩展Ability
|
|
94
|
+
│ └── resources // 权限声明、页面profile、图标与多语言
|
|
95
|
+
├── pc // PC/2in1应用入口
|
|
96
|
+
│ └── src/main // 模块标准源码与资源根目录
|
|
97
|
+
│ ├── ets // ArkTS入口与页面根目录
|
|
98
|
+
│ │ ├── pages // PC主页与路由页面
|
|
99
|
+
│ │ ├── pcability // PC入口Ability
|
|
100
|
+
│ │ └── pcbackupability // PC备份扩展Ability
|
|
101
|
+
│ └── resources // 分层图标、页面profile、多语言
|
|
102
|
+
├── tv // 智慧大屏应用入口
|
|
103
|
+
│ └── src/main // 模块标准源码与资源根目录
|
|
104
|
+
│ ├── ets // ArkTS入口与页面根目录
|
|
105
|
+
│ │ ├── pages // TV主页与路由页面
|
|
106
|
+
│ │ ├── tvability // TV入口Ability
|
|
107
|
+
│ │ └── tvbackupability // TV备份扩展Ability
|
|
108
|
+
│ └── resources // 分层图标、页面profile、多语言
|
|
109
|
+
└── watch // 智能穿戴应用入口
|
|
110
|
+
└── src/main // 模块标准源码与资源根目录
|
|
111
|
+
├── ets // ArkTS入口与页面根目录
|
|
112
|
+
│ ├── pages // 穿戴主页路由页面
|
|
113
|
+
│ ├── watchability // 穿戴入口Ability
|
|
114
|
+
│ └── watchbackupability // 穿戴备份扩展Ability
|
|
115
|
+
└── resources // 表盘图标、路由profile、多语言
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
#### 移动端页面
|
|
119
|
+
|
|
120
|
+
本章说明在直板机、折叠机、平板等形态下,如何借助一多布局能力,使首页、歌单详情页、全屏播放页在同一套业务逻辑上完成适配,并概述与本示例相关的窗口适配要点。
|
|
121
|
+
|
|
122
|
+
## 窗口适配
|
|
123
|
+
|
|
124
|
+
- 窗口模式
|
|
125
|
+
|
|
126
|
+
适配设备支持全屏、分屏、悬浮窗和自由窗口模式,具体参见[窗口模式](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),即可自动适配全屏、分屏、悬浮窗和自由窗口模式下的布局。
|
|
127
|
+
- 窗口方向
|
|
128
|
+
|
|
129
|
+
在类直板机上推荐仅竖屏显示,在双折叠展开态、三折叠展开态、平板等大屏幕场景下推荐四方向旋转并受控制中心的旋转开关控制。在移动端应用推荐在[module.json5](https://gitcode.com/HarmonyOS_Samples/MusicHome/blob/master/products/default/src/main/module.json5)配置文件中将orientation字段设置为follow_desktop(跟随桌面的旋转模式),具体说明可参考[为应用配置旋转策略](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-device-window-direction#section714419371037)。
|
|
130
|
+
- 窗口沉浸式
|
|
131
|
+
|
|
132
|
+
根据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)隐藏标题栏,仅保留右上角三键,使应用页面延伸至标题栏区域,实现沉浸式显示效果。
|
|
133
|
+
|
|
134
|
+
## 首页
|
|
135
|
+
|
|
136
|
+
音乐应用首页用于展示推荐信息流与快捷入口,以满足试听与浏览歌单的需求。本示例将首页主要内容组织在RecommendPage中,并由多个分区组件拼装而成。
|
|
137
|
+
|
|
138
|
+
效果图如下所示:
|
|
139
|
+
|
|
140
|
+
| 横向(/纵向)断点 | sm/md | sm | md | lg、xl |
|
|
141
|
+
| --- | --- | --- | --- | --- |
|
|
142
|
+
| 首页 | | | | |
|
|
143
|
+
|
|
144
|
+
**界面开发**
|
|
145
|
+
|
|
146
|
+
对各个区域使用多种能力进行分析,实现方案如下表:
|
|
147
|
+
|
|
148
|
+
| 区域编号 | 简介 | 实现方案 |
|
|
149
|
+
| --- | --- | --- |
|
|
150
|
+
| 1 | 底部页签 | 借助[HdsTabs](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdstabs)实现。同时在api版本低的设备上降级使用[Tabs](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-tabs)组件。 |
|
|
151
|
+
| 2 | 顶部页签及搜索框 | 使用响应式布局实现。通过监听断点变化,实现折行显示。在横向断点为sm时,组件两行显示;在横向断点为md、lg或xl时,组件单行显示。 |
|
|
152
|
+
| 3 | 歌单卡片列表 | 使用响应式组件[Scroll](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-scroll)结合[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)组件实现横向滚动。 |
|
|
153
|
+
| 4 | 分类标签区域 |
|
|
154
|
+
| 5 | 为你推荐区域 |
|
|
155
|
+
| 7 | 音乐列表 | 使用[List](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-list)结合[LazyForEach](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-rendering-control-lazyforeach)实现列表渲染,并通过lanes()属性设置响应式列数,根据横向断点为sm展示一列,md展示两列,lg或者xl展示三列。 |
|
|
156
|
+
|
|
157
|
+
## 列表页
|
|
158
|
+
|
|
159
|
+
列表页用于展示歌单头图与曲目列表,并在页面内提供迷你播放条以延续播控。对应实现集中在PlaylistDetailPage及相关Section组件。
|
|
160
|
+
|
|
161
|
+
效果图如下所示:
|
|
162
|
+
|
|
163
|
+
| 横向(/纵向)断点 | sm/md | sm | md | lg、xl |
|
|
164
|
+
| --- | --- | --- | --- | --- |
|
|
165
|
+
| 列表页 | | | | |
|
|
166
|
+
|
|
167
|
+
**界面开发**
|
|
168
|
+
|
|
169
|
+
列表页通过栅格系统区分窄屏堆叠与宽屏分栏。
|
|
170
|
+
|
|
171
|
+
- 窄屏(如横向断点sm、md下占满列宽):封面信息区域与列表区域在[GridRow](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridrow)中均占据满列,呈现上图下文的布局。
|
|
172
|
+
- 宽屏(如横向断点lg、xl):同一[GridRow](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridrow)下封面信息区域与列表区按列跨度分为四列与八列,实现左右分栏。
|
|
173
|
+
|
|
174
|
+
实现方案如下表:
|
|
175
|
+
|
|
176
|
+
| | | |
|
|
177
|
+
| --- | --- | --- |
|
|
178
|
+
| **区域编号** | **简介** | **实现方案** |
|
|
179
|
+
| 1 | 标题栏 | 使用[HdsNavDestination](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdsnavdestination)实现,并支持滚动渐变效果 (IMMERSIVE_GRADIENT_BLUR)。 |
|
|
180
|
+
| 2 | 封面信息 | 使用响应式组件[Flex](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-flex)实现,当横向断点为sm、md时采用水平布局,当断点为lg、xl时实现垂直布局。 |
|
|
181
|
+
| 3 | 列表区 | 使用[List](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-list)结合[LazyForEach](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-rendering-control-lazyforeach)实现列表渲染,并通过lanes()属性设置响应式列数,根据横向断点为sm展示一列,md、lg、xl时展示两列。 |
|
|
182
|
+
| 4 | 播放条 | 使用[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)层叠环形进度条。 |
|
|
183
|
+
|
|
184
|
+
## 播放页
|
|
185
|
+
|
|
186
|
+
播放页用于沉浸式展示封面、进度条与歌词,并提供手势收起等交互功能。
|
|
187
|
+
|
|
188
|
+
效果图如下所示:
|
|
189
|
+
|
|
190
|
+
| 横向(/纵向)断点 | sm/md | sm | md | lg、xl |
|
|
191
|
+
| --- | --- | --- | --- | --- |
|
|
192
|
+
| 播放页 | | | | |
|
|
193
|
+
| 歌词页 | | | | |
|
|
194
|
+
|
|
195
|
+
**界面开发**
|
|
196
|
+
|
|
197
|
+
全屏播放页面综合使用[Swiper](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-swiper)与[GridRow](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridrow)完成窄宽屏形态切换。
|
|
198
|
+
|
|
199
|
+
- 窄屏(如横向断点sm下占满列宽):采用[Swiper](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-swiper)分页方式,分页展示封面、歌曲信息与歌词等内容区域。
|
|
200
|
+
- 宽屏(如横向断点md、lg、xl):使用[GridRow](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-gridrow)双列排布歌曲信息控制区域与歌词区域。
|
|
201
|
+
|
|
202
|
+
实现方案如下表:
|
|
203
|
+
|
|
204
|
+
| | | |
|
|
205
|
+
| --- | --- | --- |
|
|
206
|
+
| **区域编号** | **简介** | **实现方案** |
|
|
207
|
+
| 1 | 顶部栏 | 使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)组件实现,包含返回图标以及分享按钮。 |
|
|
208
|
+
| 2 | 封面区域 | 使用[Image](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-image)组件实现,并通过scale()属性实现下滑关闭缩放动画。 |
|
|
209
|
+
| 3 | 控制区域 | 采用[Column](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-column)组件实现垂直布局,进度条由[Slider](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-slider)组件实现。 |
|
|
210
|
+
| 4 | 歌词区域 | 使用[Canvas](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-components-canvas-canvas)组件逐行绘制歌词。 |
|
|
211
|
+
|
|
212
|
+
#### 电脑端页面
|
|
213
|
+
|
|
214
|
+
本章介绍如何基于现有移动端界面开发方案,实现代码逻辑与布局复用,高效完成音乐类应用在电脑设备上的界面开发。
|
|
215
|
+
|
|
216
|
+
## 首页
|
|
217
|
+
|
|
218
|
+
将电脑端首页划分为八个区域。
|
|
219
|
+
|
|
220
|
+
效果图如下所示:
|
|
221
|
+
|
|
222
|
+

|
|
223
|
+
|
|
224
|
+
**界面开发**
|
|
225
|
+
|
|
226
|
+
对各个区域使用的多种能力进行分析,实现方案如下表:
|
|
227
|
+
|
|
228
|
+
| 区域编号 | 简介 | 实现方案 |
|
|
229
|
+
| --- | --- | --- |
|
|
230
|
+
| 1 | 侧边页签 | 使用侧边栏容器[SideBarContainer](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-sidebarcontainer)实现。 |
|
|
231
|
+
| 2 | 顶部页签及搜索框 | 同移动端[首页](#section29721612105717)对应区域的布局实现方案。 |
|
|
232
|
+
| 3 | 歌单卡片列表 |
|
|
233
|
+
| 4 | 分类标签区域 |
|
|
234
|
+
| 5 | 为你推荐区域 |
|
|
235
|
+
| 7 | 音乐列表 |
|
|
236
|
+
| 8 | 播放条 | 使用[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)层叠环形进度条。 |
|
|
237
|
+
|
|
238
|
+
## 列表页
|
|
239
|
+
|
|
240
|
+
将电脑端列表划分为五个区域。
|
|
241
|
+
|
|
242
|
+
效果图如下所示:
|
|
243
|
+
|
|
244
|
+

|
|
245
|
+
|
|
246
|
+
**界面开发**
|
|
247
|
+
|
|
248
|
+
实现方案如下表:
|
|
249
|
+
|
|
250
|
+
| | | |
|
|
251
|
+
| --- | --- | --- |
|
|
252
|
+
| **区域编号** | **简介** | **实现方案** |
|
|
253
|
+
| 1 | 侧边页签 | 使用侧边栏容器[SideBarContainer](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-sidebarcontainer)实现。 |
|
|
254
|
+
| 2 | 标题栏 | 同移动端[列表页](#section15311254145716)对应区域的布局实现方案。 |
|
|
255
|
+
| 3 | 封面信息 |
|
|
256
|
+
| 4 | 列表区 |
|
|
257
|
+
| 5 | 播放条 |
|
|
258
|
+
|
|
259
|
+
## 播放页
|
|
260
|
+
|
|
261
|
+
电脑端播放页面与移动端播放页面实现效果一致,可参考移动端[播放页](#section143891320165811)实现。
|
|
262
|
+
|
|
263
|
+
#### 智慧屏页面
|
|
264
|
+
|
|
265
|
+
本章介绍如何基于现有移动端界面开发方案,实现代码逻辑与布局复用,以高效完成音乐类应用在智慧屏设备上的界面开发。
|
|
266
|
+
|
|
267
|
+
## 首页
|
|
268
|
+
|
|
269
|
+
将智慧屏首页划分为四个区域。
|
|
270
|
+
|
|
271
|
+
效果图如下所示:
|
|
272
|
+
|
|
273
|
+

|
|
274
|
+
|
|
275
|
+
**界面开发**
|
|
276
|
+
|
|
277
|
+
对各个区域使用的多种能力进行分析,实现方案如下表:
|
|
278
|
+
|
|
279
|
+
| 区域编号 | 简介 | 实现方案 |
|
|
280
|
+
| --- | --- | --- |
|
|
281
|
+
| 1 | 顶部胶囊导航 | 使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)组件实现横向布局,使用[List](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-list)组件实现胶囊导航。 |
|
|
282
|
+
| 2 | 歌单卡片列表 | 与移动端[首页](#section29721612105717)对应区域的布局实现方案一致。 |
|
|
283
|
+
| 3 | 为你推荐区域 |
|
|
284
|
+
| 4 | 音乐列表 |
|
|
285
|
+
|
|
286
|
+
## 列表页
|
|
287
|
+
|
|
288
|
+
智慧屏列表页与移动端显示效果存在较大差异,建议单独开发智慧屏列表页,并将其划分为两个区域。
|
|
289
|
+
|
|
290
|
+
效果图如下所示:
|
|
291
|
+
|
|
292
|
+

|
|
293
|
+
|
|
294
|
+
**界面开发**
|
|
295
|
+
|
|
296
|
+
实现方案如下表:
|
|
297
|
+
|
|
298
|
+
| | | |
|
|
299
|
+
| --- | --- | --- |
|
|
300
|
+
| **区域编号** | **简介** | **实现方案** |
|
|
301
|
+
| 1 | 歌单信息 | 使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)组件实现水平布局。 |
|
|
302
|
+
| 2 | 列表区 | 使用[List](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-list)结合[LazyForEach](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-rendering-control-lazyforeach)实现列表渲染。 |
|
|
303
|
+
|
|
304
|
+
## 播放页
|
|
305
|
+
|
|
306
|
+
智慧屏播放页与移动端播放页实现效果一致,参考移动端[播放页](#section143891320165811)实现。
|
|
307
|
+
|
|
308
|
+
#### 智能穿戴页面
|
|
309
|
+
|
|
310
|
+
本章将介绍音乐应用如何借助“一多”布局能力,在智能穿戴设备上实现独立应用开发,并以首页、歌曲列表页与播放页等典型页面为例,详细阐述其设计与实现。
|
|
311
|
+
|
|
312
|
+
## 首页
|
|
313
|
+
|
|
314
|
+
穿戴首页通过[ArcSwiper](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-arcswiper)实现首页与歌单列表的横向切换,并在首页显示当前播放的音乐以方便用户操作。
|
|
315
|
+
|
|
316
|
+

|
|
317
|
+
|
|
318
|
+
实现方案如下表:
|
|
319
|
+
|
|
320
|
+
| | | |
|
|
321
|
+
| --- | --- | --- |
|
|
322
|
+
| **区域编号** | **简介** | **实现方案** |
|
|
323
|
+
| 1 | 顶部标题栏 | 使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)组件实现标题与搜索按钮的水平布局。 |
|
|
324
|
+
| 2 | 播控条 | 使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)组件实现,分为封面区域和音乐控制区。 |
|
|
325
|
+
| 3 | 推荐区域 | 使用[Stack](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-stack)组件实现图片堆叠效果。 |
|
|
326
|
+
|
|
327
|
+
## 歌单与曲目列表
|
|
328
|
+
|
|
329
|
+
穿戴列表页主要展示歌曲列表内容。
|
|
330
|
+
|
|
331
|
+

|
|
332
|
+
|
|
333
|
+
实现方案如下表:
|
|
334
|
+
|
|
335
|
+
| | | |
|
|
336
|
+
| --- | --- | --- |
|
|
337
|
+
| **区域编号** | **简介** | **实现方案** |
|
|
338
|
+
| 1 | 歌单列表页 | 使用[ArcList](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-arclist)实现列表展示。 |
|
|
339
|
+
|
|
340
|
+
## 播放页
|
|
341
|
+
|
|
342
|
+
穿戴播放页划分为三个区域。
|
|
343
|
+
|
|
344
|
+

|
|
345
|
+
|
|
346
|
+
实现方案如下表:
|
|
347
|
+
|
|
348
|
+
| | | |
|
|
349
|
+
| --- | --- | --- |
|
|
350
|
+
| **区域编号** | **简介** | **实现方案** |
|
|
351
|
+
| 1 | 歌曲信息 | 使用[Column](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-column)组件实现歌名与歌手名的垂直布局。 |
|
|
352
|
+
| 2 | 控制区域 | 使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)组件实现上一首、播放/暂停、下一首的水平布局。 |
|
|
353
|
+
| 3 | 辅助功能区 | 使用[Row](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-row)组件实现水平布局。 |
|
|
354
|
+
|
|
355
|
+
## 交互开发
|
|
356
|
+
|
|
357
|
+
智能穿戴设备音乐应用因界面空间有限,在页面中直接添加音量调节功能较为不便,因此可利用表冠监听功能实现音量的调节。
|
|
358
|
+
|
|
359
|
+
- 表冠调节音量
|
|
360
|
+
|
|
361
|
+
穿戴设备支持[onDigitalCrown](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-universal-events-crown#ondigitalcrown)事件,当组件获焦后旋转表冠触发该事件。音乐应用可在播放页面监听此事件,通过旋转表冠调节音量大小,具体交互逻辑请参见[示例代码](#section520865982117)。
|
|
362
|
+
|
|
363
|
+
#### 示例代码
|
|
364
|
+
|
|
365
|
+
- [多设备音乐界面](https://gitcode.com/HarmonyOS_Samples/MusicHome)
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# 多设备设置界面
|
|
2
|
+
|
|
3
|
+
> 来源: https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-multi-settings-application-page
|
|
4
|
+
> 文档标识(fileName): bpta-multi-settings-application-page
|
|
5
|
+
> 目录(catalogName): best-practices
|
|
6
|
+
> 语言: cn
|
|
7
|
+
> 更新时间: 2026-06-23 03:38:15
|
|
8
|
+
> 导航地址: /hmos/hmos-dp1
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
#### 概述
|
|
12
|
+
|
|
13
|
+
本文从当前常见的多设备应用场景中选取设置应用作为典型案例,详细阐述“一多”理念在实际开发中的应用。设置应用主要展示导航页列表及内容页在不同设备上的呈现方式,并介绍路由跳转功能。
|
|
14
|
+
|
|
15
|
+
当前应用已适配的设备包括:直板机、双折叠(Mate X系列)、三折叠、阔折叠、平板和电脑。
|
|
16
|
+
|
|
17
|
+
下文将从UX设计、工程管理、移动端页面和电脑端页面四个角度,介绍“一多”设置应用在开发过程中的最佳实践。
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
阅读本文前,建议开发者先了解[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)相关知识。
|
|
22
|
+
|
|
23
|
+
- [UX设计](#section99762271515):介绍设置应用的交互逻辑与通用设计要点,开发者可直接参考。
|
|
24
|
+
- [工程管理](#section719020851716):介绍“一多”工程所需配置,并推荐采用结构更清晰的三层架构。
|
|
25
|
+
- [移动端页面](#section202931220101020)和[电脑端页面](#section5748352172710):遵循实际应用开发流程,以页面为基本单元,依次讲解窗口适配、页面开发及功能开发的设计思路与实现方式。
|
|
26
|
+
|
|
27
|
+
#### UX设计
|
|
28
|
+
|
|
29
|
+
设计参考图如下所示。
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
#### 工程管理
|
|
34
|
+
|
|
35
|
+
为确保“一多”工程代码的复用性与可维护性,推荐开发者采用分层架构组织代码工程。该架构将项目划分为产品定制层(products)、基础特性层(features)和公共能力层(common)三个层级,各层级权责明确且功能独立,为开发者提供了清晰、高效且可扩展的设计方案。关于分层架构的具体设计细节,可参考[分层架构设计](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、common三个层级组织代码工程。各层级设计如下:
|
|
44
|
+
|
|
45
|
+
- products层:应用需适配的设备包括直板机、双折叠(Mate X系列)、三折叠、阔折叠、平板及电脑。由于电脑界面布局与其他设备差异较大,因此单独创建名为“pc”的包作为电脑设备的应用入口;直板机、双折叠(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”的包作为这些设备的应用入口。
|
|
46
|
+
- features层:包含一个核心业务模块——网络连接(multisettinglink)。模块对应创建HAR包,供products层按需引用。
|
|
47
|
+
- common层:为实现代码复用并减少冗余,集中存放公共常量、日志工具类及窗口管理工具等基础能力,供其他模块统一调用。
|
|
48
|
+
|
|
49
|
+
工程结构如下:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
├──common // 公共模块层
|
|
53
|
+
│ └──multisettingbase // 公共能力模块
|
|
54
|
+
│ ├──src/main/ets // 代码区
|
|
55
|
+
│ │ ├──model // 数据模型
|
|
56
|
+
│ │ ├──utils // 工具类
|
|
57
|
+
│ │ └──view // 公共视图组件
|
|
58
|
+
│ └──src/main/resources // 资源目录
|
|
59
|
+
├──features // 功能模块层
|
|
60
|
+
│ └──multisettinglink // 网络连接功能模块
|
|
61
|
+
│ ├──src/main/ets // 代码区
|
|
62
|
+
│ │ ├──model // 数据模型
|
|
63
|
+
│ │ ├──view // 视图组件
|
|
64
|
+
│ │ └──viewmodel // 视图模型
|
|
65
|
+
│ └──src/main/resources // 资源目录
|
|
66
|
+
└──products // 产品层
|
|
67
|
+
├──default // 手机/平板设备入口
|
|
68
|
+
│ ├──src/main/ets // 代码区
|
|
69
|
+
│ │ ├──common // 公共常量
|
|
70
|
+
│ │ ├──entryability // 应用入口能力
|
|
71
|
+
│ │ ├──entrybackupability // 备份能力
|
|
72
|
+
│ │ ├──pages // 页面
|
|
73
|
+
│ │ ├──view // 视图组件
|
|
74
|
+
│ │ └──viewmodel // 视图模型
|
|
75
|
+
│ └──src/main/resources // 资源目录
|
|
76
|
+
└──pc // 电脑设备入口
|
|
77
|
+
├──src/main/ets // 代码区
|
|
78
|
+
│ ├──common // 公共常量
|
|
79
|
+
│ ├──pages // 页面
|
|
80
|
+
│ ├──pcability // 电脑应用入口能力
|
|
81
|
+
│ ├──pcbackupability // 电脑备份能力
|
|
82
|
+
│ ├──view // 视图组件
|
|
83
|
+
│ └──viewmodel // 视图模型
|
|
84
|
+
└──src/main/resources // 资源目录
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
#### 移动端页面
|
|
88
|
+
|
|
89
|
+
本章介绍如何针对直板机、双折叠(Mate X系列)、三折叠、阔折叠、平板设备上的设置应用,利用“一多”布局能力,实现页面层级“一套代码、多端适配”的目标。同时,阐述这些设备上的窗口适配方案。
|
|
90
|
+
|
|
91
|
+
## 窗口适配
|
|
92
|
+
|
|
93
|
+
- 窗口模式
|
|
94
|
+
|
|
95
|
+
适配设备支持全屏、分屏、悬浮窗和自由窗口模式,具体参见[窗口模式](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),自动适配全屏、分屏、悬浮窗和自由窗口模式下的布局。
|
|
96
|
+
- 窗口方向
|
|
97
|
+
|
|
98
|
+
通过[module.json5配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/module-configuration-file),将[abilities标签](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/module-configuration-file#abilities标签)的orientation属性设置为跟随桌面的旋转模式(follow_desktop)。
|
|
99
|
+
- 窗口沉浸式
|
|
100
|
+
|
|
101
|
+
根据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)隐藏标题栏,仅保留右上角三键,使应用页面延伸至标题栏区域,实现沉浸式显示效果。
|
|
102
|
+
|
|
103
|
+
## 导航与详情页
|
|
104
|
+
|
|
105
|
+
设置应用导航与详情页主要展示列表按钮以及对应详情页,点击导航按钮实现详情页跳转。根据功能设计,应用首页相关内容划分为6个区域,效果图如下:
|
|
106
|
+
|
|
107
|
+
| 横向断点 | sm | md | lg、xl |
|
|
108
|
+
| --- | --- | --- | --- |
|
|
109
|
+
| 首页 | | | |
|
|
110
|
+
|
|
111
|
+
**界面开发**
|
|
112
|
+
|
|
113
|
+
具体介绍及实现方案如下表所示:
|
|
114
|
+
|
|
115
|
+
| 区域编号 | 简介 | 实现方案 |
|
|
116
|
+
| --- | --- | --- |
|
|
117
|
+
| 1 | 导航页标题栏 | 使用[HdsNavigation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdsnavigation)实现,通过[titleMode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdsnavigation#titlemode)属性设置为小标题模式,并设置[titleBar](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdsnavigation#titlebar)实现模糊样式及沉浸光感样式。 |
|
|
118
|
+
| 2 | 搜索栏 | 使用[Search](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-search)组件实现,支持文本输入功能。 |
|
|
119
|
+
| 3 | 导航按钮列表 | 列表基于[List](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-list)组件实现,自定义单个按钮组件,支持传入不同参数展示不同样式,并通过系统路由表实现点击跳转至对应目标页。 |
|
|
120
|
+
| 4 | 内容页标题栏 | 使用[HdsNavDestination](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdsnavdestination)实现,通过[titleMode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdsnavigation#titlemode)属性设置为小标题模式,并设置[titleBar](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdsnavigation#titlebar)实现模糊样式、沉浸光感样式及标题栏按钮。 |
|
|
121
|
+
| 5 | WLAN页设置按钮列表 | 列表基于[List](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-list)组件实现,自定义单个按钮组件,支持传入不同参数展示不同样式,开关按钮使用[Toggle](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-toggle)实现。 |
|
|
122
|
+
| 6 | WLAN列表 | 列表基于[List](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-list)组件实现,自定义WLAN组件显示WLAN信息及图标。 |
|
|
123
|
+
|
|
124
|
+
**路由跳转**
|
|
125
|
+
|
|
126
|
+
通过[HdsNavigation](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdsnavigation)组件、[NavPathStack](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-navigation#navpathstack10)对象、[HdsNavDestination](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ui-design-hdsnavdestination)组件及系统路由表实现页面路由跳转。
|
|
127
|
+
|
|
128
|
+
- HdsNavigation组件用于展示导航按钮列表,按钮通过点击事件调用NavPathStack对象的[pushPathByName](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-navigation#pushpathbyname10)方法跳转至指定页面。
|
|
129
|
+
- HdsNavDestination组件用于构建HdsNavigation组件的子页面,组件中需声明@Builder对外实例化方法,用于注册系统路由表。
|
|
130
|
+
- 在系统路由表中注册子页面实例化方法、源码所在路径及唯一标识符,系统路由表文件路径为entry/src/main/resources/base/profile/router_map.json。
|
|
131
|
+
|
|
132
|
+
更多内容参考[Navigation页面路由](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-navigation-jump)。
|
|
133
|
+
|
|
134
|
+
#### 电脑端页面
|
|
135
|
+
|
|
136
|
+
本章介绍如何基于现有移动端界面开发方案,实现代码逻辑与布局复用,高效完成电脑设备上设置应用的界面开发。
|
|
137
|
+
|
|
138
|
+
## 导航与详情页
|
|
139
|
+
|
|
140
|
+
设置应用导航与详情页主要展示列表按钮及对应详情页,点击导航按钮实现详情页跳转。根据功能设计,应用首页相关内容划分为6个区域,效果图如下:
|
|
141
|
+
|
|
142
|
+

|
|
143
|
+
|
|
144
|
+
**界面开发**
|
|
145
|
+
|
|
146
|
+
具体介绍及实现方案如下表所示:
|
|
147
|
+
|
|
148
|
+
| 区域编号 | 简介 | 实现方案 |
|
|
149
|
+
| --- | --- | --- |
|
|
150
|
+
| 1 | 导航页标题栏 | 使用[window.setWindowDecorVisible(false)](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-window-window#setwindowdecorvisible11)隐藏标题栏,并通过自定义组件实现标题功能。 |
|
|
151
|
+
| 2 | 搜索栏 | 复用移动端导航与详情页对应区域的布局实现方案。 |
|
|
152
|
+
| 3 | 导航按钮列表 |
|
|
153
|
+
| 4 | 内容页标题栏 |
|
|
154
|
+
| 5 | WLAN页设置按钮列表 |
|
|
155
|
+
| 6 | WLAN列表 |
|
|
156
|
+
|
|
157
|
+
**路由跳转**
|
|
158
|
+
|
|
159
|
+
同移动端页面-[导航与详情页](#section16469195751520)-路由跳转。
|
|
160
|
+
|
|
161
|
+
#### 示例代码
|
|
162
|
+
|
|
163
|
+
[多设备设置界面](https://gitcode.com/HarmonyOS_Samples/NavigationSettings)
|