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

学网站开发应该学什么微信小程序ui设计

学网站开发应该学什么,微信小程序ui设计,百度竞价排名平台,凡科建站官网需要什么鸿蒙9 目前不支持鸿蒙系统电视#xff0c;但是往后肯定是必须会支持的#xff0c;所以直接学arkts就完事了#xff0c;目前的api9对焦点控制还是不够直接简洁#xff0c;估计还在完善中#xff0c;但是可以通过自定义component来实现一下 首先踩坑#xff1a; Row官方说…鸿蒙9 目前不支持鸿蒙系统电视但是往后肯定是必须会支持的所以直接学arkts就完事了目前的api9对焦点控制还是不够直接简洁估计还在完善中但是可以通过自定义component来实现一下 首先踩坑 Row官方说自身属性是可获焦的但是单独使用是没法获焦的所以必须在里面添加一个可获焦的子view但是通常所有的子view都是由获焦和离焦状态的所以不能所有的子view都加上focusabletrue这里可以通过Consume来同步整个组件内部的焦点状态, 注意这个修饰符达到同步的前提是参数名一模一样 Component export struct RowFocusable {compWidth: Length 90vpcompHeight: Length 28vpcompBorderRadius: Length 14vpalignItems: VerticalAlign VerticalAlign.CenterjustifyContent: FlexAlign FlexAlign.CenterConsume focusState: numberBuilder doAddChild(){}BuilderParam addChild: () void this.doAddChild;build() {Row() {//扯淡的玩意容器布局的子节点没有获焦能力的话容器布局就不会获焦//但是子节点能获焦的话那其他所有有焦点态的子节点也必须设置可获焦那走焦的时候会在子节点之间走动不合理非常的不合理//竟然没有父组件拦截焦点的方法Text().focusable(true).onFocus((){this.focusState ComponentsConstants.FOCUS_STATE_FOCUSED}).onBlur((){this.focusState ComponentsConstants.FOCUS_STATE_NORMAL}).width(0vp)this.addChild()}.width(this.compWidth).height(this.compHeight).justifyContent(this.justifyContent).alignItems(this.alignItems).focusOnTouch(true).borderWidth(2).borderRadius(this.compBorderRadius).borderStyle(BorderStyle.Solid).onFocus((){}).onBlur((){}).stateStyles({focused: {.backgroundColor($r(app.color.transparent)},normal: {.backgroundColor($r(app.color.transparent)},})} }自定义component 后面直接设置基础属性像上面这种只有一个BuildParam方法的可以直接这样写在大括号后面接上需要添加的子组件即可 Component export struct ImageButton {btnWidth: Length 90vpbtnHeight: Length 28vpimgWidth: Length 15vpimgHeight: Length 15vptvCfg: TextFocusConfig | undefined undefinedimgCfg: ImageFocusConfig | undefined undefinedProvide focusState: number ComponentsConstants.FOCUS_STATE_NORMALBuilder buildImage() {ImageFocusable({imgCfg: this.imgCfg}).width(this.imgWidth).height(this.imgHeight)}Builder buildText() {TextFocusable({tvCfg: this.tvCfg})}build() {RowFocusable({ compWidth: this.btnWidth, compHeight: this.btnHeight }) {this.buildImage()this.buildText()}} }//自定义统一设置占位图 Component export struct ImageFocusable {Consume focusState: numberimgCfg: ImageFocusConfig|undefinedbuild() {Image(this.focusStateComponentsConstants.FOCUS_STATE_FOCUSED ? this.imgCfg.imgResFocused : this.imgCfg.imgResNormal).objectFit(ImageFit.Contain).enabled(true).alt($r(app.media.poster_placeholder))} }//这里定义成config类是为了方便组件层级太深时更好的透传比如上面ImageButton export class ImageFocusConfig {imgResNormal: ResourceStrimgResFocused: ResourceStrconstructor(imgResNormal,imgResFocused) {this.imgResNormal imgResNormalthis.imgResFocused imgResFocused} }Component export struct TextFocusable {Consume focusState: numbertvCfg: TextFocusConfig | undefinedbuild() {if (this.tvCfg ! null) {Text(this.tvCfg!.text).fontColor(this.focusState ComponentsConstants.FOCUS_STATE_FOCUSED ? this.tvCfg!.focusColor : this.tvCfg.normalColor).textAlign(this.tvCfg.textAlign).maxLines(this.tvCfg.maxLine).textOverflow({overflow: this.tvCfg.textOverFlow}).align(Alignment.Center).width(this.tvCfg.width).height(this.tvCfg.height).fontSize(this.tvCfg.textSize)}} }export class TextFocusConfig {text: ResourceStrtextSize: Lengthwidth: Lengthheight: LengthnormalColor: ResourceColorfocusColor: ResourceColorselectColor: ResourceColortextAlign: TextAlignmaxLine: numbertextOverFlow: TextOverflowconstructor()constructor(text?)constructor(text?, tvSize?)constructor(text?, tvSize?, width?, height?)constructor(text?, tvSize?, width?, height?, normalColor?, focusColor?, selectColor?)constructor(text?, tvSize?, width?, height?, normalColor?, focusColor?, selectColor?, textAlign?, maxLine?, textOverFlow?) {this.text text ?? this.textSize tvSize ?? 14vpthis.width width ?? autothis.height height ?? autothis.normalColor normalColor ?? $r(app.color.white_70)this.focusColor focusColor ?? $r(app.color.white_100)this.selectColor selectColor ?? $r(app.color.tv_color_selected)this.textAlign textAlign ?? TextAlign.Startthis.maxLine maxLine ?? 1this.textOverFlow textOverFlow ?? TextOverflow.Ellipsis}setText(text): TextFocusConfig {this.text textreturn this}setTextSize(size): TextFocusConfig {this.textSize sizereturn this}setWith(w): TextFocusConfig {this.width wreturn this}setHeight(h): TextFocusConfig {this.height hreturn this} } 像自定义text这种组件很多属性都没法直接设置所以需要添加自己命名的属性然后也没有焦点态的方法所以只能通过Consume focusState: number 来同步父子组件之间的焦点状态另外封装成config的好处还是挺多的自我挖掘吧
http://www.hkea.cn/news/14336266/

相关文章:

  • 网站背景全屏免费动图制作app
  • 个人网站服务器企业所得税税收优惠
  • 百度网站推广费用多少phpstudy建设网站视频教程
  • 网站全新改版如何做江苏省建设厅网站挂证存疑名单
  • 上海网站建设小程序巢湖自助建站系统
  • 北京软件外包公司排行榜网页优化方案
  • 有哪些做问卷调查赚钱的网站photoshop下载免费版
  • 随州公司做网站国产 做 视频网站
  • 企业建站的作用是什么开一个淘宝店铺流程
  • 学校网站免费建设营销型网站是什么意思
  • 网站密码如何找回深夜的fm免费看
  • ks2e做网站如何制作家具网站
  • 哪里有做美食的视频网站石家庄+外贸网站建设公司
  • 成都网站定制开发服务器能放多少个网站
  • 深圳网站建设送域名最好的营销型网站建设公司
  • 开发一个游戏需要多少钱网站搬家seo
  • 自己怎么做电影网站吗明星网站设计
  • 井陉网站建设申请备案 关网站
  • 京东的网站规划与建设市场分析wordpress输入密码无法登陆
  • 角门网站建设网页制作与网站建设初学者必看教程
  • 个人网站建设知乎亚当学院网站视频建设教程
  • 网站建设培训教程仿微博网站模板
  • 微网站制作需要多少钱网站的后台
  • 做贵网站多少钱中山网站建设找阿江
  • 与企业网站做接口做自适应网站注意事项
  • 网站建设与运营 好考吗做wd网站实训报告总结
  • 小说网站设计模板榆林网站开发
  • 建设网站的那个公司好营销中国
  • 网站怎么排名wordpress f5
  • PHP网站开发成功案例网站建设不备案后果