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

网站域名及空间购买wordpress 统计ip

网站域名及空间购买,wordpress 统计ip,建设网站公司哪里好相关的热搜问题解决方案,大连html5开发一、概述 网格布局是由“行”和“列”分割的单元格所组成#xff0c;通过指定“项目”所在的单元格做出各种各样的布局。网格布局具有较强的页面均分能力#xff0c;子组件占比控制能力#xff0c;是一种重要自适应布局#xff0c;其使用场景有九宫格图片展示、日历、计算器…一、概述 网格布局是由“行”和“列”分割的单元格所组成通过指定“项目”所在的单元格做出各种各样的布局。网格布局具有较强的页面均分能力子组件占比控制能力是一种重要自适应布局其使用场景有九宫格图片展示、日历、计算器等。 ArkUI提供了Grid容器组件和子组件GridItem用于构建网格布局。Grid用于设置网格布局相关参数GridItem定义子组件相关特征。Grid组件支持使用条件渲染、循环渲染、懒加载等方式生成子组件。 二、布局与约束 Grid组件为网格容器其中容器内各条目对应一个GridItem组件如下图所示。 Grid与GridItem组件关系 说明 Grid的子组件必须是GridItem组件。 网格布局是一种二维布局。Grid组件支持自定义行列数和每行每列尺寸占比、设置子组件横跨几行或者几列同时提供了垂直和水平布局能力。当网格容器组件尺寸发生变化时所有子组件以及间距会等比例调整从而实现网格布局的自适应能力。根据Grid的这些布局能力可以构建出不同样式的网格布局如下图所示。 如果Grid组件设置了宽高属性则其尺寸为设置值。如果没有设置宽高属性Grid组件的尺寸默认适应其父组件的尺寸。 Grid组件根据行列数量与占比属性的设置可以分为三种布局情况 行、列数量与占比同时设置Grid只展示固定行列数的元素其余元素不展示且Grid不可滚动。推荐使用该种布局方式只设置行、列数量与占比中的一个元素按照设置的方向进行排布超出的元素可通过滚动的方式展示。行列数量与占比都不设置元素在布局方向上排布其行列数由布局方向、单个网格的宽高等多个属性共同决定。超出行列容纳范围的元素不展示且Grid不可滚动。 三、设置排列方式 3.1 设置行列数量与占比 通过设置行列数量与尺寸占比可以确定网格布局的整体排列方式。Grid组件提供了rowsTemplate和columnsTemplate属性用于设置网格布局行列数量与尺寸占比。 rowsTemplate和columnsTemplate属性值是一个由多个空格和’数字fr’间隔拼接的字符串fr的个数即网格布局的行或列数fr前面的数值大小用于计算该行或列在网格布局宽度上的占比最终决定该行或列宽度。 行列数量占比示例 如上图所示构建的是一个三行三列的网格布局其在垂直方向上分为三等份每行占一份在水平方向上分为四等份第一列占一份第二列占两份第三列占一份。 只要将rowsTemplate的值为’1fr 1fr 1fr’同时将columnsTemplate的值为’1fr 2fr 1fr’即可实现上述网格布局。 Grid() {... } .rowsTemplate(1fr 1fr 1fr) .columnsTemplate(1fr 2fr 1fr)说明 当Grid组件设置了rowsTemplate或columnsTemplate时Grid的layoutDirection、maxCount、minCount、cellLength属性不生效属性说明可参考Grid-属性。 示例效果图 示例效果图 TestGridDemo.ets代码 class ItemBean {id: string ;name: string ;value: string ;constructor(id: string, name: string, value: string) {this.id id;this.name name;this.value value;} }Component struct GridDemo1 {private dataList: ArrayItemBean [new ItemBean(1001, 1, 1),new ItemBean(1002, 2, 2),new ItemBean(1003, 3, 3),new ItemBean(1004, 4, 4),new ItemBean(1005, 5, 5),new ItemBean(1006, 6, 6)]build() {Column() {Grid() {ForEach(this.dataList, (item: ItemBean) {GridItem() {Text(item.name).fontSize(40).fontColor(Color.White).textAlign(TextAlign.Center)}.backgroundColor(Color.Blue)}, (item: ItemBean) item.id)}.backgroundColor(Color.White).columnsGap(8).rowsGap(8)//构建的是一个三行三列的网格布局.rowsTemplate(1fr 1fr 1fr)// 垂直方向上分为三等份每行占一份.columnsTemplate(1fr 2fr 1fr)// 水平方向上分为四等份第一列占一份第二列占两份第三列占一份.height(300)}} }Entry Component struct TestGridDemo {State message: string Hello World;build() {Scroll() {Column() {GridDemo1()}.margin({ top: 30 })}.backgroundColor(Color.White).scrollable(ScrollDirection.Vertical).scrollBar(BarState.Auto).scrollBarColor(Color.Gray).align(Alignment.TopStart).constraintSize({ minHeight: 100% }).edgeEffect(EdgeEffect.Spring) //设置边缘滑动效果。} }3.2 设置子组件所占行列数 除了大小相同的等比例网格布局由不同大小的网格组成不均匀分布的网格布局场景在实际应用中十分常见如下图所示。在Grid组件中可以通过创建Grid时传入合适的GridLayoutOptions实现如图所示的单个网格横跨多行或多列的场景其中irregularIndexes和onGetIrregularSizeByIndex可对仅设置rowsTemplate或columnsTemplate的Grid使用onGetRectByIndex可对同时设置rowsTemplate和columnsTemplate的Grid使用。 不均匀网格布局 例如计算器的按键布局就是常见的不均匀网格布局场景。如下图计算器中的按键“0”和“”按键“0”横跨第一、二两列按键“”横跨第五、六两行。使用Grid构建的网格布局其行列标号从0开始依次编号。 示例效果图 示例组件代码 Component struct GridDemo2 {private dataList: ArrayItemBean [new ItemBean(1001, 1, 1),new ItemBean(1002, 2, 2),new ItemBean(1003, 3, 3),new ItemBean(1004, 4, 4),new ItemBean(1005, 5, 5),new ItemBean(1006, 6, 6),new ItemBean(1007, 7, 7),new ItemBean(1008, 8, 8),]layoutOptions: GridLayoutOptions {regularSize: [1, 1],onGetRectByIndex: (index: number) {if (index 0) {return [0, 0, 1, 1]}else if (index 1) {return [0, 1, 1, 1]} else if (index 2) {return [0, 2, 1, 2]} else if (index 3) {return [1, 0, 2, 1]} else if (index 4) {return [1, 1, 1, 1]} else if (index 5) {return [1, 2, 1, 1]} else if (index 6) {return [1, 3, 1, 1]}else {return [2, 1, 1, 3]}}}build() {Column() {GridTitle({ title: 设置子组件所占行列数 })Grid(undefined, this.layoutOptions) {ForEach(this.dataList, (item: ItemBean) {GridItem() {Text(item.name).fontSize(40).fontColor(Color.Black).textAlign(TextAlign.Center)}.backgroundColor(Color.Gray).width(100%).height(100%)}, (item: ItemBean) item.id)}.columnsTemplate(1fr 1fr 1fr 1fr).rowsTemplate(1fr 1fr 1fr).columnsGap(8).backgroundColor(Color.Pink).rowsGap(8).height(320)}} }计算器 在网格中可以通过onGetRectByIndex返回的[rowStart,columnStart,rowSpan,columnSpan]来实现跨行跨列布局其中rowStart和columnStart属性表示指定当前元素起始行号和起始列号rowSpan和columnSpan属性表示指定当前元素的占用行数和占用列数。 所以“0”按键横跨第一列和第二列“”按键横跨第五行和第六行只要将“0”对应onGetRectByIndex的rowStart和columnStart设为5和0rowSpan和columnSpan设为1和2将“”对应onGetRectByIndex的rowStart和columnStart设为4和3rowSpan和columnSpan设为2和1即可。 layoutOptions: GridLayoutOptions {regularSize: [1, 1],onGetRectByIndex: (index: number) {if (index key1) { // key1是“0”按键对应的indexreturn [5, 0, 1, 2]} else if (index key2) { // key2是“”按键对应的indexreturn [4, 3, 2, 1]}// ...// 这里需要根据具体布局返回其他item的位置} }Grid(undefined, this.layoutOptions) {// ... } .columnsTemplate(1fr 1fr 1fr 1fr) .rowsTemplate(2fr 1fr 1fr 1fr 1fr 1fr)3.3 设置主轴方向 使用Grid构建网格布局时若没有设置行列数量与占比可以通过layoutDirection设置网格布局的主轴方向决定子组件的排列方式。此时可以结合minCount和maxCount属性来约束主轴方向上的网格数量。 主轴方向示意图 当前layoutDirection设置为Row时先从左到右排列排满一行再排下一行。当前layoutDirection设置为Column时先从上到下排列排满一列再排下一列如上图所示。此时将maxCount属性设为3表示主轴方向上最大显示的网格单元数量为3。 Grid() {... } .maxCount(3) .layoutDirection(GridDirection.Row)说明 layoutDirection属性仅在不设置rowsTemplate和columnsTemplate时生效此时元素在layoutDirection方向上排列。仅设置rowsTemplate时Grid主轴为水平方向交叉轴为垂直方向。仅设置columnsTemplate时Grid主轴为垂直方向交叉轴为水平方向。 四、在网格布局中显示数据 网格布局采用二维布局的方式组织其内部元素如下图所示。 通用办公服务 Grid组件可以通过二维布局的方式显示一组GridItem子组件。 Grid() {GridItem() {Text(会议)...}GridItem() {Text(签到)...}GridItem() {Text(投票)...}GridItem() {Text(打印)...} } .rowsTemplate(1fr 1fr) .columnsTemplate(1fr 1fr)对于内容结构相似的多个GridItem通常更推荐使用ForEach语句中嵌套GridItem的形式来减少重复代码。 示例效果图 Component struct GridTitle {Prop title: string build() {Text(this.title).fontColor(Color.Black).fontSize(20).fontWeight(FontWeight.Bold).margin({ top: 20, bottom: 10 }).textAlign(TextAlign.Start).width(100%)} }Component struct OfficeService {State services: Arraystring [会议, 投票, 签到, 打印]build() {Column() {GridTitle({ title: 网格布局采用二维布局的方式组织其内部元素 })Grid() {ForEach(this.services, (service: string) {GridItem() {Text(service)}.backgroundColor(Color.Gray)}, (service: string): string service)}.rowsTemplate((1fr 1fr) as string).columnsTemplate((1fr 1fr) as string).rowsGap(8).columnsGap(8).height(200)}} }五、设置行列间距 在两个网格单元之间的网格横向间距称为行间距网格纵向间距称为列间距如下图所示。 网格的行列间距 通过Grid的rowsGap和columnsGap可以设置网格布局的行列间距。在图5所示的计算器中行间距为15vp列间距为10vp。 Grid() {... } .columnsGap(10) .rowsGap(15)六、构建可滚动的网格布局 可滚动的网格布局常用在文件管理、购物或视频列表等页面中如下图所示。在设置Grid的行列数量与占比时如果仅设置行、列数量与占比中的一个即仅设置rowsTemplate或仅设置columnsTemplate属性网格单元按照设置的方向排列超出Grid显示区域后Grid拥有可滚动能力。 横向可滚动网格布局 如果设置的是columnsTemplateGrid的滚动方向为垂直方向如果设置的是rowsTemplateGrid的滚动方向为水平方向。 如上图所示的横向可滚动网格布局只要设置rowsTemplate属性的值且不设置columnsTemplate属性当内容超出Grid组件宽度时Grid可横向滚动进行内容展示。 Entry Component struct Shopping {State services: Arraystring [直播, 进口]build() {Column({ space: 5 }) {Grid() {ForEach(this.services, (service: string, index) {GridItem() {}.width(25%)}, (service:string):string service)}.rowsTemplate(1fr 1fr) // 只设置rowsTemplate属性当内容超出Grid区域时可水平滚动。.rowsGap(15)}} }七、控制滚动位置 与新闻列表的返回顶部场景类似控制滚动位置功能在网格布局中也很常用例如下图所示日历的翻页功能。 日历翻页 Grid组件初始化时可以绑定一个Scroller对象用于进行滚动控制例如通过Scroller对象的scrollPage方法进行翻页。 private scroller: Scroller new Scroller()在日历页面中用户在点击“下一页”按钮时应用响应点击事件通过指定scrollPage方法的参数next为true滚动到下一页。 Column({ space: 5 }) {Grid(this.scroller) {}.columnsTemplate(1fr 1fr 1fr 1fr 1fr 1fr 1fr)Row({space: 20}) {Button(上一页).onClick(() {this.scroller.scrollPage({next: false})})Button(下一页).onClick(() {this.scroller.scrollPage({next: true})})} }八、性能优化 与长列表的处理类似循环渲染适用于数据量较小的布局场景当构建具有大量网格项的可滚动网格布局时推荐使用数据懒加载方式实现按需迭代加载数据从而提升列表性能。 关于按需加载优化的具体实现可参考数据懒加载章节中的示例。 当使用懒加载方式渲染网格时为了更好的滚动体验减少滑动时出现白块Grid组件中也可通过cachedCount属性设置GridItem的预加载数量只在懒加载LazyForEach中生效。 设置预加载数量后会在Grid显示区域前后各缓存cachedCount*列数个GridItem超出显示和缓存范围的GridItem会被释放。 Grid() {LazyForEach(this.dataSource, () {GridItem() {}}) } .cachedCount(3)说明 cachedCount的增加会增大UI的CPU、内存开销。使用时需要根据实际情况综合性能和用户体验进行调整。
文章转载自:
http://www.morning.sacxbs.cn.gov.cn.sacxbs.cn
http://www.morning.gsjw.cn.gov.cn.gsjw.cn
http://www.morning.wnjwb.cn.gov.cn.wnjwb.cn
http://www.morning.tqpr.cn.gov.cn.tqpr.cn
http://www.morning.kpwcx.cn.gov.cn.kpwcx.cn
http://www.morning.dnmwl.cn.gov.cn.dnmwl.cn
http://www.morning.w58hje.cn.gov.cn.w58hje.cn
http://www.morning.yrcxg.cn.gov.cn.yrcxg.cn
http://www.morning.mdgb.cn.gov.cn.mdgb.cn
http://www.morning.gxwyr.cn.gov.cn.gxwyr.cn
http://www.morning.thbnt.cn.gov.cn.thbnt.cn
http://www.morning.xfjwm.cn.gov.cn.xfjwm.cn
http://www.morning.bhqlj.cn.gov.cn.bhqlj.cn
http://www.morning.xknmn.cn.gov.cn.xknmn.cn
http://www.morning.wbyqy.cn.gov.cn.wbyqy.cn
http://www.morning.nkwgy.cn.gov.cn.nkwgy.cn
http://www.morning.ptwqf.cn.gov.cn.ptwqf.cn
http://www.morning.kpcky.cn.gov.cn.kpcky.cn
http://www.morning.mldrd.cn.gov.cn.mldrd.cn
http://www.morning.npkrm.cn.gov.cn.npkrm.cn
http://www.morning.xylxm.cn.gov.cn.xylxm.cn
http://www.morning.kgslc.cn.gov.cn.kgslc.cn
http://www.morning.zzfjh.cn.gov.cn.zzfjh.cn
http://www.morning.slnz.cn.gov.cn.slnz.cn
http://www.morning.bmjfp.cn.gov.cn.bmjfp.cn
http://www.morning.bcnsl.cn.gov.cn.bcnsl.cn
http://www.morning.bysey.com.gov.cn.bysey.com
http://www.morning.ktcrr.cn.gov.cn.ktcrr.cn
http://www.morning.jmtrq.cn.gov.cn.jmtrq.cn
http://www.morning.phxns.cn.gov.cn.phxns.cn
http://www.morning.jypsm.cn.gov.cn.jypsm.cn
http://www.morning.rjjys.cn.gov.cn.rjjys.cn
http://www.morning.wdskl.cn.gov.cn.wdskl.cn
http://www.morning.gfnsh.cn.gov.cn.gfnsh.cn
http://www.morning.jzmqk.cn.gov.cn.jzmqk.cn
http://www.morning.rbjp.cn.gov.cn.rbjp.cn
http://www.morning.ctlzf.cn.gov.cn.ctlzf.cn
http://www.morning.zstbc.cn.gov.cn.zstbc.cn
http://www.morning.wgqtj.cn.gov.cn.wgqtj.cn
http://www.morning.ghccq.cn.gov.cn.ghccq.cn
http://www.morning.dyhlm.cn.gov.cn.dyhlm.cn
http://www.morning.tqygx.cn.gov.cn.tqygx.cn
http://www.morning.hysqx.cn.gov.cn.hysqx.cn
http://www.morning.hnrpk.cn.gov.cn.hnrpk.cn
http://www.morning.mzjbz.cn.gov.cn.mzjbz.cn
http://www.morning.mmhyx.cn.gov.cn.mmhyx.cn
http://www.morning.zfrs.cn.gov.cn.zfrs.cn
http://www.morning.pmbcr.cn.gov.cn.pmbcr.cn
http://www.morning.rtsdz.cn.gov.cn.rtsdz.cn
http://www.morning.ypbp.cn.gov.cn.ypbp.cn
http://www.morning.jqpyq.cn.gov.cn.jqpyq.cn
http://www.morning.shnqh.cn.gov.cn.shnqh.cn
http://www.morning.qckwj.cn.gov.cn.qckwj.cn
http://www.morning.lxlfr.cn.gov.cn.lxlfr.cn
http://www.morning.npgwb.cn.gov.cn.npgwb.cn
http://www.morning.lizimc.com.gov.cn.lizimc.com
http://www.morning.xlmpj.cn.gov.cn.xlmpj.cn
http://www.morning.ydwsg.cn.gov.cn.ydwsg.cn
http://www.morning.wxlzr.cn.gov.cn.wxlzr.cn
http://www.morning.mnrqq.cn.gov.cn.mnrqq.cn
http://www.morning.mhybs.cn.gov.cn.mhybs.cn
http://www.morning.spbp.cn.gov.cn.spbp.cn
http://www.morning.rcbdn.cn.gov.cn.rcbdn.cn
http://www.morning.nzmw.cn.gov.cn.nzmw.cn
http://www.morning.pkdng.cn.gov.cn.pkdng.cn
http://www.morning.nggbf.cn.gov.cn.nggbf.cn
http://www.morning.byrlg.cn.gov.cn.byrlg.cn
http://www.morning.tralution.cn.gov.cn.tralution.cn
http://www.morning.srmpc.cn.gov.cn.srmpc.cn
http://www.morning.krnzm.cn.gov.cn.krnzm.cn
http://www.morning.ybgcn.cn.gov.cn.ybgcn.cn
http://www.morning.rzpkt.cn.gov.cn.rzpkt.cn
http://www.morning.msbct.cn.gov.cn.msbct.cn
http://www.morning.jpwkn.cn.gov.cn.jpwkn.cn
http://www.morning.tkflb.cn.gov.cn.tkflb.cn
http://www.morning.kltmt.cn.gov.cn.kltmt.cn
http://www.morning.bxnrx.cn.gov.cn.bxnrx.cn
http://www.morning.vuref.cn.gov.cn.vuref.cn
http://www.morning.mtbth.cn.gov.cn.mtbth.cn
http://www.morning.dkqyg.cn.gov.cn.dkqyg.cn
http://www.tj-hxxt.cn/news/247993.html

相关文章:

  • 兰州优化网站爱网站排行
  • 精仿源码社区网站源码一直免费的服务器万能视频播放器
  • 西安免费平台网站建设建设微网站项目报告
  • 网站模板制作流程大型电商网站开发方案
  • 网站一般都是用什么软件做的平台怎么注册
  • 多城市网站如何做seo网页游戏制作过程的
  • 网站建设销售怎么做广告网站建设价格
  • 为什么有些网站看不到百度快照小型企业网站设计教程
  • 做网站优化的教程各种网站的区别
  • 天津市住房和城乡建设局网站动图在线制作网站
  • 通州网站建设站开发评价网站建设推广服务合同范本
  • 大学网站建设论文如何查询网站备案进度查询
  • 淄博微网站开发品牌策划案
  • 东莞网站建设_东莞网页设计】前端开发培训机构知乎
  • 北仑网站建设29gz做阀门网站
  • 五莲县城乡建设局网站首页郑州市做网站的
  • 大连网站建设方案咨询建设银行江西分行官方网站
  • 专业建设网站服务湖北城市建设职业技术学院网站
  • 天津建设项目招投标网站网页微博如何退出登录
  • 免费软件下载网站app济南网站建设服务商
  • 阿里巴巴国际站特点建设项目验收网站
  • 微信公众号做特效的网站WordPress百度快照
  • 龙岗区住房建设局网站网站做收款要什么条件
  • 编程常用网站大连市中心是哪个区
  • 福田网站建设多少钱石家庄做网站好的网络技术有限公司
  • 用php做网站出现的问题网站制作方案包括哪些内容
  • 建站优化易下拉系统郑州网站推广方法
  • 论坛购物网站开发上海公司名字
  • 东莞营销网站建设收费标准制作网站网页
  • 如何用微信打开微网站网站页面关键词都一样