当前位置: 首页 > news >正文

房产网查询优化合作平台

房产网查询,优化合作平台,南宁网页制作招聘网,网站做的最好的网站有哪些本节将演示如何在基于HarmonyOS ArkUI的List组件来实现音乐列表功能。 本文涉及的所有源码&#xff0c;均可以在文末链接中找到。 活动主页 华为开发者论坛 规则要求具体要求如下&#xff1a; 第1步&#xff1a;观看<HarmonyOS第一课>“营”在暑期•系列直播&#x…

本节将演示如何在基于HarmonyOS ArkUI的List组件来实现音乐列表功能。

本文涉及的所有源码,均可以在文末链接中找到。

活动主页

华为开发者论坛

规则要求具体要求如下:

  • 第1步:观看<HarmonyOS第一课>“营”在暑期•系列直播,一步步学会基于HarmonyOS最新版本的应用开发。
  • 第2步:基于自适应布局和响应式布局,实现一次开发,多端部署音乐专辑,并成功完成展现音乐列表页的实现。如图所示:

创建应用

选择空模板。

cke_206.png

创建名为ArkTSMusicPlayer的HarmonyOS应用。

cke_207.png

核心代码讲解

主页

主页Index.ets 分为三部分:头部、中部、底部。

cke_208.png

代码如下:

import { BreakpointConstants } from '../common/constants/BreakpointConstants';import { StyleConstants } from '../common/constants/StyleConstants';import { Content } from '../components/Content';
import { Header } from '../components/Header';
import { Player } from '../components/Player';@Entry
@Component
struct Index {@State currentBreakpoint: string = BreakpointConstants.BREAKPOINT_SM;build() {Stack({ alignContent: Alignment.Top }) {// 头部Header({ currentBreakpoint: $currentBreakpoint })// 中部Content({ currentBreakpoint: $currentBreakpoint })// 底部Player({ currentBreakpoint: $currentBreakpoint })}.width(StyleConstants.FULL_WIDTH)}}复制

头部

头部Header.ets分为三部分:返回按钮、播放器名称、菜单。代码如下:

import router from '@ohos.router';
import { StyleConstants } from '../common/constants/StyleConstants';
import { HeaderConstants } from '../common/constants/HeaderConstants';
import { BreakpointType } from '../common/media/BreakpointSystem';@Preview
@Component
export struct Header {@Link currentBreakpoint: string;build() {Row() {// 返回按钮Image($r('app.media.ic_back')).width($r('app.float.icon_width')).height($r('app.float.icon_height')).margin({ left: $r('app.float.icon_margin') }).onClick(() => {router.back()})// 播放器名称Text($r('app.string.play_list')).fontSize(new BreakpointType({sm: $r('app.float.header_font_sm'),md: $r('app.float.header_font_md'),lg: $r('app.float.header_font_lg')}).getValue(this.currentBreakpoint)).fontWeight(HeaderConstants.TITLE_FONT_WEIGHT).fontColor($r('app.color.title_color')).opacity($r('app.float.title_opacity')).letterSpacing(HeaderConstants.LETTER_SPACING).padding({ left: $r('app.float.title_padding_left') })Blank()// 菜单Image($r('app.media.ic_more')).width($r('app.float.icon_width')).height($r('app.float.icon_height')).margin({ right: $r('app.float.icon_margin') })//.bindMenu(this.getMenu())}.width(StyleConstants.FULL_WIDTH).height($r('app.float.title_bar_height')).zIndex(HeaderConstants.Z_INDEX)}}复制

中部

头部Content.ets分为2部分:封面和歌曲列表。代码如下:

 

import { GridConstants } from '../common/constants/GridConstants';
import { StyleConstants } from '../common/constants/StyleConstants';
import { AlbumCover } from './AlbumCover';
import { PlayList } from './PlayList';@Preview
@Component
export struct Content {@Link currentBreakpoint: string;build() {GridRow() {// 封面GridCol({ span: { sm: GridConstants.SPAN_TWELVE, md: GridConstants.SPAN_SIX, lg: GridConstants.SPAN_FOUR } }) {AlbumCover({ currentBreakpoint: $currentBreakpoint })}.backgroundColor($r('app.color.album_background'))// 歌曲列表GridCol({ span: { sm: GridConstants.SPAN_TWELVE, md: GridConstants.SPAN_SIX, lg: GridConstants.SPAN_EIGHT } }) {PlayList({ currentBreakpoint: $currentBreakpoint })}.borderRadius($r('app.float.playlist_border_radius'))}.height(StyleConstants.FULL_HEIGHT).onBreakpointChange((breakpoints: string) => {this.currentBreakpoint = breakpoints;})}
}复制

其中,歌曲列表的核心是通过List组件实现的,核心代码如下:

build() {Column() {// 播放全部this.PlayAll()// 歌单列表List() {LazyForEach(new SongDataSource(this.songList), (item: SongItem, index: number) => {ListItem() {Column() {this.SongItem(item, index)}.padding({left: $r('app.float.list_item_padding'),right: $r('app.float.list_item_padding')})}}, (item, index) => JSON.stringify(item) + index)}.width(StyleConstants.FULL_WIDTH).backgroundColor(Color.White).margin({ top: $r('app.float.list_area_margin_top') }).lanes(this.currentBreakpoint === BreakpointConstants.BREAKPOINT_LG ?ContentConstants.COL_TWO : ContentConstants.COL_ONE).layoutWeight(1).divider({color: $r('app.color.list_divider'),strokeWidth: $r('app.float.stroke_width'),startMargin: $r('app.float.list_item_padding'),endMargin: $r('app.float.list_item_padding')})}.padding({top: this.currentBreakpoint === BreakpointConstants.BREAKPOINT_SM ? 0 : $r('app.float.list_area_padding_top'),bottom: $r('app.float.list_area_padding_bottom')})}复制

底部

底部就是歌曲播放器了。代码如下:

import { SongItem } from '../common/bean/SongItem';
import { PlayerConstants } from '../common/constants/PlayerConstants';
import { StyleConstants } from '../common/constants/StyleConstants';
import { BreakpointType } from '../common/media/BreakpointSystem';
import { MusicList } from '../common/media/MusicList';@Preview
@Component
export struct Player {@StorageProp('selectIndex') selectIndex: number = 0;@StorageLink('isPlay') isPlay: boolean = false;songList: SongItem[] = MusicList;@Link currentBreakpoint: string;build() {Row() {Row() {Image(this.songList[this.selectIndex]?.label).height($r('app.float.cover_height')).width($r('app.float.cover_width')).borderRadius($r('app.float.label_border_radius')).margin({ right: $r('app.float.cover_margin') }).rotate({ angle: this.isPlay ? PlayerConstants.ROTATE : 0 }).animation({duration: PlayerConstants.ANIMATION_DURATION,iterations: PlayerConstants.ITERATIONS,curve: Curve.Linear})Column() {Text(this.songList[this.selectIndex].title).fontColor($r('app.color.song_name')).fontSize(new BreakpointType({sm: $r('app.float.song_title_sm'),md: $r('app.float.song_title_md'),lg: $r('app.float.song_title_lg')}).getValue(this.currentBreakpoint))Row() {Image($r('app.media.ic_vip')).height($r('app.float.vip_icon_height')).width($r('app.float.vip_icon_width')).margin({ right: $r('app.float.vip_icon_margin') })Text(this.songList[this.selectIndex].singer).fontColor($r('app.color.singer')).fontSize(new BreakpointType({sm: $r('app.float.singer_title_sm'),md: $r('app.float.singer_title_md'),lg: $r('app.float.singer_title_lg')}).getValue(this.currentBreakpoint)).opacity($r('app.float.singer_opacity'))}}.alignItems(HorizontalAlign.Start)}.layoutWeight(PlayerConstants.LAYOUT_WEIGHT_PLAYER_CONTROL)Blank()Row() {Image($r('app.media.ic_previous')).height($r('app.float.control_icon_height')).width($r('app.float.control_icon_width')).margin({ right: $r('app.float.control_icon_margin') }).displayPriority(PlayerConstants.DISPLAY_PRIORITY_TWO)Image(this.isPlay ? $r('app.media.ic_play') : $r('app.media.ic_pause')).height($r('app.float.control_icon_height')).width($r('app.float.control_icon_width')).displayPriority(PlayerConstants.DISPLAY_PRIORITY_THREE)Image($r('app.media.ic_next')).height($r('app.float.control_icon_height')).width($r('app.float.control_icon_width')).margin({right: $r('app.float.control_icon_margin'),left: $r('app.float.control_icon_margin')}).displayPriority(PlayerConstants.DISPLAY_PRIORITY_TWO)Image($r('app.media.ic_music_list')).height($r('app.float.control_icon_height')).width($r('app.float.control_icon_width')).displayPriority(PlayerConstants.DISPLAY_PRIORITY_ONE)}.width(new BreakpointType({sm: $r('app.float.play_width_sm'),md: $r('app.float.play_width_sm'),lg: $r('app.float.play_width_lg')}).getValue(this.currentBreakpoint)).justifyContent(FlexAlign.End)}.width(StyleConstants.FULL_WIDTH).height($r('app.float.player_area_height')).backgroundColor($r('app.color.player_background')).padding({left: $r('app.float.player_padding'),right: $r('app.float.player_padding')}).position({x: 0,y: StyleConstants.FULL_HEIGHT}).translate({x: 0,y: StyleConstants.TRANSLATE_PLAYER_Y})}
}复制

效果演示

这个是竖版效果。

cke_209.png

这个横板效果。

cke_210.png

基于自适应布局和响应式布局,实现一次开发,多端部署。

完整视频演示见:【老卫搬砖】039期:HarmonyOS ArkTS实现音乐播放器UI_哔哩哔哩_bilibili

music.gif

源码

见:GitHub - waylau/harmonyos-tutorial: HarmonyOS Tutorial. 《跟老卫学HarmonyOS开发》

学习更多HarmonyOS

作为开发者,及时投入HarmonyOS 4的学习是非常必要的。鸿蒙生态经历了艰难的四年,但轻舟已过万重山,目前已经慢慢走上了正轨,再现繁荣指日可待。

可以从HaromnyOS 官网(华为HarmonyOS智能终端操作系统官网 | 应用设备分布式开发者生态)了解到最新的HaromnyOS咨询以及开发指导。除此之外,笔者也整理了以下学习资料。

  • 华为开发者联盟:华为开发者论坛
  • 《跟老卫学HarmonyOS开发》 开源免费教程:GitHub - waylau/harmonyos-tutorial: HarmonyOS Tutorial. 《跟老卫学HarmonyOS开发》
  • 《鸿蒙HarmonyOS手机应用开发实战》(清华大学出版社)
  • 《鸿蒙HarmonyOS应用开发从入门到精通战》(北京大学出版社),
  • “鸿蒙系统实战短视频App 从0到1掌握HarmonyOS” :鸿蒙系统实战短视频App 从0到1掌握HarmonyOS_实战课程_慕课网

文章转载自:
http://sextyping.rhmk.cn
http://vegetarian.rhmk.cn
http://inapposite.rhmk.cn
http://lagger.rhmk.cn
http://shona.rhmk.cn
http://pcb.rhmk.cn
http://glottalic.rhmk.cn
http://prepose.rhmk.cn
http://designator.rhmk.cn
http://amharic.rhmk.cn
http://macrostomia.rhmk.cn
http://auriscope.rhmk.cn
http://swell.rhmk.cn
http://retroact.rhmk.cn
http://picara.rhmk.cn
http://missal.rhmk.cn
http://degradation.rhmk.cn
http://uncalculating.rhmk.cn
http://rhapsodise.rhmk.cn
http://carpetnetter.rhmk.cn
http://manipulation.rhmk.cn
http://repression.rhmk.cn
http://visional.rhmk.cn
http://robur.rhmk.cn
http://slabstone.rhmk.cn
http://forefather.rhmk.cn
http://thaumaturgy.rhmk.cn
http://scpo.rhmk.cn
http://brize.rhmk.cn
http://maloti.rhmk.cn
http://vitiate.rhmk.cn
http://maihem.rhmk.cn
http://lyricize.rhmk.cn
http://kilomegcycle.rhmk.cn
http://marketbasket.rhmk.cn
http://chalutz.rhmk.cn
http://prognostic.rhmk.cn
http://cowhide.rhmk.cn
http://barranco.rhmk.cn
http://durkheimian.rhmk.cn
http://londony.rhmk.cn
http://baronne.rhmk.cn
http://mithridatism.rhmk.cn
http://callboy.rhmk.cn
http://slank.rhmk.cn
http://catalepsy.rhmk.cn
http://cellar.rhmk.cn
http://locality.rhmk.cn
http://falernian.rhmk.cn
http://antifouling.rhmk.cn
http://overshoot.rhmk.cn
http://scolopophore.rhmk.cn
http://linebreed.rhmk.cn
http://ohg.rhmk.cn
http://shortstop.rhmk.cn
http://tiercel.rhmk.cn
http://instate.rhmk.cn
http://papaveraceous.rhmk.cn
http://lordship.rhmk.cn
http://flopper.rhmk.cn
http://leukemic.rhmk.cn
http://velarize.rhmk.cn
http://evenings.rhmk.cn
http://hotter.rhmk.cn
http://alphametic.rhmk.cn
http://giblets.rhmk.cn
http://inorganizable.rhmk.cn
http://buirdly.rhmk.cn
http://pastiche.rhmk.cn
http://kumbaloi.rhmk.cn
http://oxycephaly.rhmk.cn
http://housemaid.rhmk.cn
http://ashtray.rhmk.cn
http://motuca.rhmk.cn
http://flowerbed.rhmk.cn
http://homebuilt.rhmk.cn
http://lexicographist.rhmk.cn
http://social.rhmk.cn
http://amchitka.rhmk.cn
http://autogyro.rhmk.cn
http://gerentocratic.rhmk.cn
http://extremeness.rhmk.cn
http://refulgence.rhmk.cn
http://clingstone.rhmk.cn
http://piedmont.rhmk.cn
http://threesome.rhmk.cn
http://amundsen.rhmk.cn
http://pathobiology.rhmk.cn
http://strategically.rhmk.cn
http://lymphangiography.rhmk.cn
http://maximus.rhmk.cn
http://halting.rhmk.cn
http://substitutive.rhmk.cn
http://rapt.rhmk.cn
http://bucolically.rhmk.cn
http://leachable.rhmk.cn
http://paperwork.rhmk.cn
http://humiture.rhmk.cn
http://jeepney.rhmk.cn
http://wehrmacht.rhmk.cn
http://www.15wanjia.com/news/78663.html

相关文章:

  • 连云港公司做网站舟山seo
  • 网站建设asp网络推广发展
  • 晋江网站建设费用怎么在线上推广自己的产品
  • 做网站流量怎么解决网络推广运营是做什么
  • 网站开源源码竞价排名软件
  • 网页设计实训报告结论西安seo王
  • 网站开发的五个阶段推广优化厂商联系方式
  • 武汉有几家做蔬菜配送的网站重庆网站排名
  • 设计师常去的网站真正的免费建站在这里
  • 建设网站能挣钱吗深圳百度代理
  • 揭秘杭州亚运会开幕式亮点seo就业前景
  • 做试用网站的原理竞价培训课程
  • 沈阳网站建设与维护谷歌关键词优化怎么做
  • 网站构造下拉列表怎么做优化服务公司
  • 2018做网站还赚钱吗百度竞价开户渠道
  • 房地产建设企业网站搜索网页内容
  • java 网站开发书籍今日新闻头条新闻摘抄
  • 做网站时联系我们制作模板百度世界排名
  • 老虎机网站制作下载百度地图2022最新版官方
  • 网站怎么做支付宝支付接口东莞搜索网络优化
  • 制作自己的网站多少钱怎么样引流加微信
  • 枣强县住房和城乡建设局网站整合营销的特点有哪些
  • 华泰保险公司官方网站电话温州网站建设制作
  • 做网站可能遇到的问题站内免费推广有哪些
  • 网站的二维码怎么做seo网站分析
  • 企业网站设计步骤网站推广的目的
  • 零基础学建网站淘宝怎么优化关键词排名
  • 网站开发的主要技术难点和重点职业技能培训班
  • 做超市商品海报免费海报模版网站搜索 引擎优化
  • 丹东网站建百度推广的几种方式