RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(app市場(chǎng)首頁(yè))

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-25 16:41 ? 次閱讀

應(yīng)用市場(chǎng)首頁(yè)

本小節(jié)將以應(yīng)用市場(chǎng)首頁(yè)為例,介紹如何使用自適應(yīng)布局能力和響應(yīng)式布局能力適配不同尺寸窗口。

頁(yè)面設(shè)計(jì)

一個(gè)典型的應(yīng)用市場(chǎng)首頁(yè)的UX設(shè)計(jì)如下所示。

image.png

觀察應(yīng)用市場(chǎng)首頁(yè)的頁(yè)面設(shè)計(jì),不同斷點(diǎn)下的頁(yè)面設(shè)計(jì)有較多相似的地方。

據(jù)此,我們可以將頁(yè)面分拆為多個(gè)組成部分。

  1. 底部/側(cè)邊導(dǎo)航欄
  2. 標(biāo)題欄與搜索欄
  3. 運(yùn)營(yíng)橫幅
  4. 快捷入口
  5. 精品應(yīng)用
  6. 開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]點(diǎn)擊或者復(fù)制轉(zhuǎn)到。

image.png

接下來(lái)我們逐一分析各部分的實(shí)現(xiàn)。

底部/側(cè)邊導(dǎo)航欄

在sm和md斷點(diǎn)下,導(dǎo)航欄在底部;在lg斷點(diǎn)下,導(dǎo)航欄在左側(cè)。可以通過(guò)[Tab組件]的barPosition和vertical屬性控制TabBar的位置,同時(shí)還可以通過(guò)barWidth和barHeight屬性控制TabBar的尺寸。

import Home from '../common/Home';//組件請(qǐng)參考相關(guān)實(shí)例
import TabBarItem from '../common/TabBarItem';

@Entry
@Component
struct Index {
  @State currentIndex: number = 0;
  @StorageProp('currentBreakpoint') currentBreakpoint: string = 'md';
  @Builder
  tabItem(index: number, title: Resource, icon: Resource, iconSelected: Resource) {
    TabBarItem({
      index: index,
      currentIndex: this.currentIndex,
      title: title,
      icon: icon,
      iconSelected: iconSelected
    })
  }

  build() {
    // 設(shè)置TabBar在主軸方向起始或結(jié)尾位置
    Tabs({ barPosition: this.currentBreakpoint === "lg" ? BarPosition.Start : BarPosition.End }) {
      // 首頁(yè)
      TabContent() {
        Home()
      }.tabBar(this.tabItem(0, $r('app.string.tabBar1'), $r('app.media.ic_home_normal'), $r('app.media.ic_home_actived')))
      TabContent() {}.tabBar(this.tabItem(1, $r('app.string.tabBar2'), $r('app.media.ic_app_normal'), $r('app.media.ic_app_actived')))
      TabContent() {}.tabBar(this.tabItem(2, $r('app.string.tabBar3'), $r('app.media.ic_game_normal'), $r('app.media.ic_mine_actived')))
      TabContent() {}.tabBar(this.tabItem(3, $r('app.string.tabBar4'), $r('app.media.ic_search_normal'), $r('app.media.ic_search_actived')))
      TabContent() {}.tabBar(this.tabItem(4, $r('app.string.tabBar4'), $r('app.media.ic_mine_normal'), $r('app.media.ic_mine_actived')))
    }
    .backgroundColor('#F1F3F5')
    .barMode(BarMode.Fixed)
    .barWidth(this.currentBreakpoint === "lg" ? 96 : '100%')
    .barHeight(this.currentBreakpoint === "lg" ? '60%' : 56)
    // 設(shè)置TabBar放置在水平或垂直方向
    .vertical(this.currentBreakpoint === "lg") 
  }
}

另外在sm及l(fā)g斷點(diǎn)下,TabBar中各個(gè)Item的圖標(biāo)和文字是按照垂直方向排布的,在md斷點(diǎn)下,TabBar中各個(gè)Item的圖標(biāo)和文字是按照水平方向排布的。

@Component
export default struct TabBarItem {
  @StorageProp('currentBreakpoint') currentBreakpoint: string = 'md';

  build() {
    if (this.currentBreakpoint !== 'md' ) {
      // sm及l(fā)g斷點(diǎn)下,tabBarItem中的圖標(biāo)和文字垂直排布
      Column() {
       // ...
      }.justifyContent(FlexAlign.Center).height('100%').width('100%')
    } else {
      // md斷點(diǎn)下,tabBarItem中的圖標(biāo)和文字水平排布
      Row() {
       // ...
      }.justifyContent(FlexAlign.Center).height('100%').width('100%')
    }
  }
}

標(biāo)題欄與搜索欄

標(biāo)題欄和搜索欄,在sm和md斷點(diǎn)下分兩行顯示,在lg斷點(diǎn)下單行顯示,可以通過(guò)柵格實(shí)現(xiàn)。在sm和md斷點(diǎn)下,標(biāo)題欄和搜索欄占滿12列,此時(shí)會(huì)自動(dòng)換行顯示。在lg斷點(diǎn)下,標(biāo)題欄占8列而搜索欄占4列,此時(shí)標(biāo)題欄和搜索欄在同一行中顯示。

image.png

@Component
export default struct IndexHeader {

  @Builder searchBar() {
    Stack({alignContent: Alignment.End}) {
      TextInput({ placeholder: $r('app.string.search') })
        .placeholderColor('#FF000000')
        .placeholderFont({ size: 16, weight: 400 })
        .textAlign(TextAlign.Start)
        .caretColor('#FF000000')
        .width('100%')
        .height(40)
        .fontWeight(400)
        .padding({ top: 9, bottom: 9 })
        .fontSize(16)
        .backgroundColor(Color.White)

      Image($r('app.media.ic_public_search'))
        .width(16)
        .height(16)
        .margin({ right: 20 })
    }.height(56).width('100%')
  }

  @Builder titleBar() {
    Text($r('app.string.tabBar1'))
      .fontSize(24)
      .fontWeight(500)
      .fontColor('#18181A')
      .textAlign(TextAlign.Start)
      .height(56)
      .width('100%')
  }

  build() {
    // 借助柵格實(shí)現(xiàn)標(biāo)題欄和搜索欄在不同斷點(diǎn)下的不同布局效果。
    GridRow() {
      GridCol({ span: { xs: 12, lg: 8 } }) {
        this.titleBar()
      }
      GridCol({ span: { xs: 12, lg: 4 } }) {
        this.searchBar()
      }
    }
    .width('100%')
  }
}

運(yùn)營(yíng)橫幅

不同斷點(diǎn)下的運(yùn)營(yíng)橫幅,sm斷點(diǎn)下顯示一張圖片,md斷點(diǎn)下顯示兩張圖片,lg斷點(diǎn)下顯示三張圖片??梢酝ㄟ^(guò)[Swiper組件的displayCount屬性]實(shí)現(xiàn)目標(biāo)效果。

@Component
export default struct IndexSwiper {
  @StorageProp('currentBreakpoint') currentBreakpoint: string = 'md';
  @Builder swiperItem(imageSrc:Resource) {
    Image(imageSrc)
      .width('100%')
      .aspectRatio(2.5)
      .objectFit(ImageFit.Fill)
  }

  build() {
    Swiper() {
      this.swiperItem($r('app.media.ic_public_swiper1'))
      this.swiperItem($r('app.media.ic_public_swiper2'))
      this.swiperItem($r('app.media.ic_public_swiper3'))
      // ...
    }
    .autoPlay(true)
    .indicator(false)
    .itemSpace(10)
    // 配置不同斷點(diǎn)下運(yùn)行橫幅中展示的圖片數(shù)量
    .displayCount(this.currentBreakpoint === 'sm' ? 1 : (this.currentBreakpoint === 'md' ? 2 : 3))
    .width('100%')
    .padding({ left: 12, right: 12, bottom: 16, top: 16 })
  }
}

快捷入口

在不同的斷點(diǎn)下,快捷入口的5個(gè)圖標(biāo)始終均勻排布,這是典型的均分能力使用場(chǎng)景。

import { entranceIcons } from '../model/HomeData';
import { AllIcons } from '../model/HomeDataType';

@Component
export default struct IndexEntrance {
  build() {
    // 將justifyContent參數(shù)配置為FlexAlign.SpaceEvenly實(shí)現(xiàn)均分布局
    Row() {
      ForEach(entranceIcons, (icon: AllIcons) = > {
        // 各快捷入口的圖標(biāo)及名稱
        Column() { 
          // ... 
          }
      })
    }
    .width('100%')
    .height(64)
    .justifyContent(FlexAlign.SpaceEvenly)
    .padding({ left: 12, right: 12 })
  }
}

精品應(yīng)用

隨著可用顯示區(qū)域的增加,精品應(yīng)用中顯示的圖標(biāo)數(shù)量也不斷增加,這是典型的延伸能力使用場(chǎng)景。精品游戲的實(shí)現(xiàn)與精品應(yīng)用類似,不再展開(kāi)分析。

import { AppItem, MyAppSource } from '../model/HomeDataType';

@Component
export default struct IndexApps {
  private title?: Resource;
  @StorageProp('currentBreakpoint') currentBreakpoint: string = 'md';
  private apps: AppItem[] = [];
  @Builder
  appListHeader() {
    Row() {
      Text(this.title)
        .width(100)
        .fontSize(16)
        .textAlign(TextAlign.Start)
        .fontWeight(500)
      Blank()
      Text($r('app.string.more'))
        .fontSize(14)
        .textAlign(TextAlign.End)
        .fontWeight(400)
        .margin({ right: 2 })
      Image($r('app.media.ic_public_arrow_right'))
        .width(12)
        .height(18)
        .opacity(0.9)
        .objectFit(ImageFit.Fill)
    }
    .margin({ bottom: 9, top: 9 })
    .width('100%')
    .alignItems(VerticalAlign.Bottom)
  }

  @Builder
  appListItem(app:AppItem) {
    Column() {
      Image(app.image)
        .width(this.currentBreakpoint === 'lg' ? 80 : 56)
        .height(this.currentBreakpoint === 'lg' ? 80 : 56)
        .margin({ bottom: 8 })
      Text(app.title)
        .width(this.currentBreakpoint === 'lg' ? 80 : 56)
        .height(16)
        .fontSize(12)
        .textAlign(TextAlign.Center)
        .fontColor('#18181A')
        .margin({ bottom: 8 })
      Text($r('app.string.install'))
        .width(this.currentBreakpoint === 'lg' ? 80 : 56)
        .height(28)
        .fontColor('#0A59F7')
        .textAlign(TextAlign.Center)
        .borderRadius(this.currentBreakpoint === 'lg' ? 26 : 20)
        .fontWeight(500)
        .fontSize(12)
        .padding({ top: 6, bottom: 6, left: 8, right: 8 })
        .backgroundColor('rgba(0,0,0,0.05)')
    }
  }
  build() {
    Column() {
      this.appListHeader()
      // 借助List組件能力,實(shí)現(xiàn)延伸能力場(chǎng)景
      List({ space: this.currentBreakpoint === 'lg' ? 44 : 20}) {
        LazyForEach(new MyAppSource(this.apps), (app: AppItem)= > {
          ListItem() {
            // 每個(gè)應(yīng)用的圖標(biāo)、名稱及安裝按鈕
            this.appListItem(app)
          }
        })
      }
      .width('100%')
      .height(this.currentBreakpoint === 'lg' ? 140 : 120)
      .listDirection(Axis.Horizontal)
    }
    .width('100%')
    .height(this.currentBreakpoint === 'lg' ? 188 : 164)
    .padding({ bottom: 8, left: 12, right: 12 })
  }
}

運(yùn)行效果

將上述各頁(yè)面主要部分組合在一起后,即可完成整體頁(yè)面開(kāi)發(fā)。

import IndexSwiper from './IndexSwiper';
import IndexEntrance from './IndexEntrance';
import IndexApps from './IndexApps';
import { appList, gameList } from '../model/HomeData';
import IndexHeader from './IndexHeader';

@Component
struct IndexContent {
  // ...
  build() {
    List() {
      // 運(yùn)營(yíng)橫幅
      ListItem() {
        IndexSwiper()
      }
      // 快捷入口
      ListItem() {
        IndexEntrance()
      }
      // 精品應(yīng)用
      ListItem() {
        IndexApps({ title: $r('app.string.boutique_application'), apps: appList })
      }
      // 精品游戲
      ListItem() {
        IndexApps({ title: $r('app.string.boutique_game'), apps: gameList })
      }
    }
    .width("100%")
  }
}

@Entry
@Component
export default struct Home {
  // ...
  build() {
    Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Start, alignItems: ItemAlign.Start }) {
      // 標(biāo)題欄和搜索欄
      IndexHeader()
      // 運(yùn)營(yíng)橫幅、快捷入口、精品應(yīng)用、精品游戲等
      IndexContent()
    }
    .height('100%')
    .backgroundColor("#F1F3F5")
  }
}

`HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

搜狗高速瀏覽器截圖20240326151450.png
本頁(yè)面的實(shí)際運(yùn)行效果如下圖所示。

image.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 移動(dòng)開(kāi)發(fā)

    關(guān)注

    0

    文章

    52

    瀏覽量

    9734
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2634

    瀏覽量

    66302
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1973

    瀏覽量

    30143
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3713

    瀏覽量

    16254
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    4382
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    HarmonyOS開(kāi)發(fā)案例:【一次開(kāi)發(fā)多端部署(視頻應(yīng)用)】

    者提供了“一次開(kāi)發(fā),多端部署”的系統(tǒng)能力,讓開(kāi)發(fā)者可以基于一次
    的頭像 發(fā)表于 05-11 15:41 ?1441次閱讀
    HarmonyOS<b class='flag-5'>開(kāi)發(fā)</b>案例:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>(視頻應(yīng)用)】

    HarmonyOS開(kāi)發(fā)案例:【一次開(kāi)發(fā),多端部署-音樂(lè)專輯】

    基于自適應(yīng)和響應(yīng)式布局,實(shí)現(xiàn)一次開(kāi)發(fā)、多端部署音樂(lè)專輯頁(yè)面。
    的頭像 發(fā)表于 05-13 16:48 ?679次閱讀
    HarmonyOS<b class='flag-5'>開(kāi)發(fā)</b>案例:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>-音樂(lè)專輯】

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā)多端部署】(多天氣)項(xiàng)目

    本示例展示個(gè)天氣應(yīng)用界面,包括首頁(yè)、城市管理、添加城市、更新時(shí)間彈窗,體現(xiàn)一次開(kāi)發(fā),多端部署
    的頭像 發(fā)表于 05-20 14:59 ?837次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(<b class='flag-5'>一</b>多天氣)項(xiàng)目

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(app市場(chǎng)首頁(yè))項(xiàng)目

    本示例展示了應(yīng)用市場(chǎng)首頁(yè),頁(yè)面中包括Tab欄、運(yùn)營(yíng)橫幅、精品應(yīng)用、精品游戲等。
    的頭像 發(fā)表于 05-21 10:57 ?607次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(<b class='flag-5'>app</b><b class='flag-5'>市場(chǎng)</b><b class='flag-5'>首頁(yè)</b>)項(xiàng)目

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(音樂(lè)專輯主頁(yè))

    本示例使用一次開(kāi)發(fā)多端部署中介紹的自適應(yīng)布局能力和響應(yīng)式布局能力進(jìn)行多設(shè)備(或多窗口尺寸)適配,保證應(yīng)用在不同設(shè)備或不同窗口尺寸下可以正常顯示。
    的頭像 發(fā)表于 05-21 14:48 ?726次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(音樂(lè)專輯主頁(yè))

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(音樂(lè)專輯頁(yè)面)

    基于自適應(yīng)和響應(yīng)式布局,實(shí)現(xiàn)一次開(kāi)發(fā)多端部署音樂(lè)專輯頁(yè)面。
    的頭像 發(fā)表于 05-25 16:21 ?790次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(音樂(lè)專輯頁(yè)面)

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(視頻應(yīng)用)

    者提供了“一次開(kāi)發(fā)多端部署”的系統(tǒng)能力,讓開(kāi)發(fā)者可以基于一次
    的頭像 發(fā)表于 05-25 16:29 ?4535次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(視頻應(yīng)用)

    鴻蒙OS開(kāi)發(fā):典型頁(yè)面場(chǎng)景【一次開(kāi)發(fā),多端部署】實(shí)戰(zhàn)(應(yīng)用市場(chǎng)首頁(yè)

    本示例展示了應(yīng)用市場(chǎng)首頁(yè),頁(yè)面中包括Tab欄、運(yùn)營(yíng)橫幅、精品應(yīng)用、精品游戲等。
    的頭像 發(fā)表于 05-24 15:21 ?907次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:典型頁(yè)面場(chǎng)景【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實(shí)戰(zhàn)(應(yīng)用<b class='flag-5'>市場(chǎng)</b><b class='flag-5'>首頁(yè)</b>)

    鴻蒙OS開(kāi)發(fā):典型頁(yè)面場(chǎng)景【一次開(kāi)發(fā),多端部署】實(shí)戰(zhàn)(音樂(lè)專輯頁(yè)2)

    本示例使用[一次開(kāi)發(fā)多端部署]中介紹的自適應(yīng)布局能力和響應(yīng)式布局能力進(jìn)行多設(shè)備(或多窗口尺寸)適配,保證應(yīng)用在不同設(shè)備或不同窗口尺寸下可以正常顯示。
    的頭像 發(fā)表于 05-25 16:47 ?2090次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:典型頁(yè)面場(chǎng)景【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實(shí)戰(zhàn)(音樂(lè)專輯頁(yè)2)

    鴻蒙OS開(kāi)發(fā):典型頁(yè)面場(chǎng)景【一次開(kāi)發(fā),多端部署】實(shí)戰(zhàn)(設(shè)置典型頁(yè)面)

    本示例展示了設(shè)置應(yīng)用的典型頁(yè)面,其在小窗口和大窗口有不同的顯示效果,體現(xiàn)一次開(kāi)發(fā)多端部署的能力。
    的頭像 發(fā)表于 05-27 09:36 ?1138次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:典型頁(yè)面場(chǎng)景【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實(shí)戰(zhàn)(設(shè)置典型頁(yè)面)

    HarmonyOS\"一次開(kāi)發(fā)多端部署\"優(yōu)秀實(shí)踐——玩機(jī)技巧,碼上起航

    的潛在用戶群體。個(gè)應(yīng)用要在多類設(shè)備上提供統(tǒng)的內(nèi)容,需要適配不同的屏幕尺寸和硬件,開(kāi)發(fā)成本較高。\"一次開(kāi)發(fā)
    發(fā)表于 08-30 18:14

    華為開(kāi)發(fā)者大會(huì)2021:一次開(kāi)發(fā) 多端部署

    一次開(kāi)發(fā) 多端部署使能開(kāi)發(fā)者從單設(shè)備生態(tài)跨入多設(shè)備生態(tài)!
    的頭像 發(fā)表于 10-22 15:09 ?1641次閱讀
    華為<b class='flag-5'>開(kāi)發(fā)</b>者大會(huì)2021:<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b> <b class='flag-5'>多端</b><b class='flag-5'>部署</b>

    華為開(kāi)發(fā)者大會(huì)2021:軟件部總裁龔體 鴻蒙系統(tǒng) 一次開(kāi)發(fā) 多端部署 萬(wàn)物互連

    華為開(kāi)發(fā)者大會(huì)2021:鴻蒙系統(tǒng) 一次開(kāi)發(fā) 多端部署 萬(wàn)物互連 在華為
    的頭像 發(fā)表于 10-22 15:09 ?4544次閱讀
    華為<b class='flag-5'>開(kāi)發(fā)</b>者大會(huì)2021:軟件部總裁龔體 <b class='flag-5'>鴻蒙</b>系統(tǒng) <b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b> <b class='flag-5'>多端</b><b class='flag-5'>部署</b> 萬(wàn)物互連

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(多設(shè)備自適應(yīng)能力)簡(jiǎn)單介紹

    本示例是《一次開(kāi)發(fā)多端部署》的配套示例代碼,展示了[頁(yè)面開(kāi)發(fā)多能力],包括自適應(yīng)布局、響應(yīng)
    的頭像 發(fā)表于 05-21 14:59 ?2398次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(多設(shè)備自適應(yīng)能力)簡(jiǎn)單介紹

    鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā)多端部署】( 設(shè)置app頁(yè)面)

    本示例展示了設(shè)置應(yīng)用的典型頁(yè)面,其在小窗口和大窗口有不同的顯示效果,體現(xiàn)一次開(kāi)發(fā)、多端部署的能力。
    的頭像 發(fā)表于 05-21 14:56 ?1042次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開(kāi)發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】( 設(shè)置<b class='flag-5'>app</b>頁(yè)面)
    RM新时代网站-首页