鸿蒙开发【实现页面路由跳转】接上一个微博页面

news2024/9/21 4:30:36
给顶部最左边的日历图标设置点击事件实现页面跳转
需要展示页面内容示例图:

6.1.1.设置页面头部内容

新建一个页面命名为MydailyPage ,给整个页面设置背景属性

代码如下:

@Entry
@Component

struct MydailyPage {

build() {
 
Column() {

}
   
.height('100%')
   
.backgroundColor(Color.Black)
 
}
}

(1)自定义变量的值

代码示例:

@State message: string = '记录我的日常'
@State name :string='用户5348130863'
@State title:string ='随时随地记录生活'

(2)在build里面添加内容

Row() {
 
Image($r("app.media.quxiao1")).width(25).height(25)
 
Text(this.message)
   
.fontSize(20)
   
.fontColor(Color.White).margin(20)
 
Image($r("app.media.wurao1")).width(25).height(25)
 

}
.justifyContent(FlexAlign.SpaceAround)
.width('100%')

运行效果:

(3)利用线性布局绘制用户名以及头像

代码示例:

Row(){
 
Image($r('app.media.meme')).width(60).height(60)
   
.borderRadius(50).margin({left:10})
 
Column(){
   
Text(this.name) .fontColor(Color.White).margin(12)
   
Text(this.title) .fontColor(Color.White)

 
}
}

.width('100%')
.height(80)

6.1.2.利用线性布局添加日历内容,并添加border属性
(1)定义一个head类用来封装

 class head{
 
weekend: string
 
num:string
 
constructor( weekend: string,num:string) {
   
this.weekend =weekend
   
this.num=num
 
}
}

(2)自定义一个clender的列表用来封装内容

@Provide clender:Array<head> =[
 
new head('周日','5'),
  new
head('周一','6'),
  new
head('周二','今天'),
  new
head('周三','8'),
  new
head('周四','9'),
  new
head('周五','10'),
  new
head('周六','11'),
]

(3)利用ForEach循环渲从而减少代码量

代码示例:

Row(){
 
Text('5月日历').fontColor(Color.White).fontSize(25)
}.margin({left:200})

Row({space:10}){
   
ForEach(this.clender,(item:head)=>{
     
Column({space:10}){
       
Text(item.weekend).fontColor(Color.White).fontSize(20)
       
Text(item.num).fontColor(Color.White)
     
}
    }
)

} .border({ style: BorderStyle.Solid, width: 1, radius: 5, color: '#1a1d26' })
.backgroundColor('#1a1d26' )
.height(100)
.width('95%')

给Row容器添加border属性,从而实现效果

6.1.3.利用list组件以及ForEach循环渲染
(1)定义recoder类用来封装

代码示例:

 class recoder{
 
title:string
 
content :string
 
color:string
 
constructor( title:string,content :string, color?:string) {
   
this.title = title
   
this.content = content
   
this.color=color
  }
}

(2)自定义构建函数list列表

代码示例:

@Provide life:Array<recoder> =[
 
new recoder('初夏随手拍','活动小队长 ...','#FFC125'),
  new
recoder('记录生活 ...','活动小队长 ...','#43CD80'),
  new
recoder('每日一餐 ...','热度值:193.2w','#ff5995d0'),
  new
recoder('随手拍打卡','热度值:243.6w','#FF69B4'),
  new
recoder('匿名世界','绿洲 创建','#663399'),
  new
recoder('视频快拍','记录精彩瞬间','#ff00ff'),
  new
recoder('每天摸鱼','活动小队长 ...','#FFC125'),
  new
recoder('追剧打卡 ','热度值:191.2w','#43CD80'),
  new
recoder('坚持运动','热度值:124.7w','#ff5995d0'),
]

(3)创建构造函数Sharelife

代码示例:

@Builder function Sharelife(item:recoder){
 
Column(){
   
Text(item.title).fontSize(18).fontColor(Color.White)
   
Text(item.content).fontColor(Color.White)
   
Button('...').backgroundColor(Color.Transparent).margin({left:50})

 
}.border({ style: BorderStyle.Solid, width:1, radius: 10, color:Color.Grey })
 
.width(110).height(90)
 
.backgroundColor(item.color)
 
.margin(5)
}

(4)利用list,ForEach循环渲染

代码示例:

Divider().height(10)
Image($r('app.media.lifebook')).width('95%').height(100)
Row(){
 
List(){
   
ForEach(this.life,(item:recoder)=>{
     
ListItem(){
       
Sharelife(item)
     
}
    }
)
 
}.listDirection(Axis.Horizontal)
 
.lanes(3) //设置行数

}.width('100%')
.height('40%')

6.1.4. 设置底部内容

代码示例:

Row(){
 
Text('查看更多').fontColor(Color.White)
 
Image($r('app.media.select')).width(30)
}.height('7%').width('95%')
.justifyContent(FlexAlign.Center)
.border({ style: BorderStyle.Solid, width: 1, radius: 10, color: '#1a1d26' })
 
.backgroundColor('#1a1d26')

6.2 .给页面添加路由实现跳转

(1)给MicrBlogPage和MydailyPage页面导包

代码示例:

import router from '@ohos.router';

(2)回到MicrBlogPage页面添加点击事件

代码如下:

Row() {
 
Image($r('app.media.sign_in')).fancy().margin({ top: 20, left: 20 })
   
.onClick(() => {
     
router.pushUrl({
       
url: 'pages/HQ/MydailyPage'
     
}, router.RouterMode.Single, (err) => {
       
if (err) {
         
console.log(`路由失败,errCode:${err.code}errMsg:${err.message}`)
         
return;
       
}
       
console.info('Invoke replaceUrl succeeded.');
     
})

   
})
}
.zIndex(10)

(3)给MydailyPage里面的图片也添加点击事件

Image($r("app.media.quxiao1")).width(25).height(25)
 
.onClick(()=>{
   
//路由返回上一页
    router.back();
 
})

这样即可实现跳转效果

(4) 利用弹窗组件给勿扰图片设置点击效果

代码示例:

Image($r("app.media.wurao1")).width(25).height(25)
 
.onClick(()=>{
   
AlertDialog.show({
     
message:'开启消息通知,每天提醒我来打卡',
     
autoCancel: true,
     
alignment: DialogAlignment.Center,
     
gridCount: 5,
     
primaryButton: {
       
value: '取消',
       
fontColor:'black',
       
action: () => {
         
console.info('Callback when the first button is clicked')
       
}
      }
,
     
secondaryButton: {
       
value: '确定',
       
fontColor:'#FB8845',
       
action: () => {
         
console.info('Callback when the second button is clicked')
       
}
      }
    }
)

 
})

运行效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1715204.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux Inodes满导致数据库宕机

项目经理反馈集群环境中有个节点无法使用了需要支援下&#xff0c;同时发过来截图说明磁盘还是有空的。 登录系统后直接发现问题 orcl2:/home/oracledb2> sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Wed May 29 13:59:21 2024 Copyright (c) 1982,…

云原生架构内涵_3.主要架构模式

云原生架构有非常多的架构模式&#xff0c;这里列举一些对应用收益更大的主要架构模式&#xff0c;如服务化架构模式、Mesh化架构模式、Serverless模式、存储计算分离模式、分布式事务模式、可观测架构、事件驱动架构等。 1.服务化架构模式 服务化架构是云时代构建云原生应用的…

串口通信问题排查总结

串口通信问题排查 排查原则&#xff1a; 软件从发送处理到接收处理&#xff0c;核查驱动、控制及发送接收数据是否正常。硬件从发送到接收&#xff0c;针对信号经过的各段&#xff0c;分段核对信号是否正常。示波器、逻辑分析仪。用万用表、示波器、逻辑分析仪等工具&#xf…

小程序如何更换营业执照

​因为商家经营业务的变更&#xff0c;尤其是之前的营业执照注销等原因&#xff0c;导致要求更换小程序主体。下面就具体介绍如何进行变更。 1. 登录mp.weixin.qq.com&#xff0c;找到设置->基本设置&#xff0c;在主体信息字段&#xff0c;点击小程序主体变更。主体变更分…

MVC架构中的servlet层重定向404小坑

servlet层中的UserLoginServlet.java package com.mhys.servlet; /*** ClassName: ${NAME}* Description:** Author 数开_11* Create 2024-05-29 20:32* Version 1.0*/import com.mhys.pojo.User; import com.mhys.service.UserService; import com.mhys.service.impl.UserSer…

tomcat学习--部署java项目

主流开发项目&#xff0c;springboot框架下&#xff0c;jar部署java传统的tomcat发布war包 一 什么是tomcat&#xff1f; 是一个用于运行java程序的软件&#xff0c;发布的时候&#xff1a;开发将源码使用maven打包&#xff0c;生产war包 二 安装tomcat tomcat是java写的&a…

蓝桥杯-AB路线(详细原创)

问题描述&#xff1a; 有一个由 N M 个方格组成的迷宫&#xff0c;每个方格写有一个字母 A 或者 B。小蓝站在迷宫左上角的方格&#xff0c;目标是走到右下角的方格。他每一步可以移动到上下左右相邻的方格去。 由于特殊的原因&#xff0c;小蓝的路线必须先走 K 个 A 格子、再…

计算机系统基础实验三(解了但尽量理解)

一.准备阶段 1、下载好32位的实验代码后&#xff0c;将文件解压缩并且通过共享文件夹操作将文件添加到虚拟机中&#xff0c;双击查看bomb.c代码&#xff0c;将c代码完整看了一遍&#xff0c;发现看这里的c代码是无从下手的&#xff0c;代码中只含有主函数&#xff0c;触发炸弹…

19 - grace数据处理 - 补充 - 地下水储量计算过程分解 - 冰后回弹(GIA)改正

19 - grace数据处理 - 补充 - 地下水储量计算过程分解 - 冰后回弹(GIA)改正 0 引言1 gia数据处理过程0 引言 由水量平衡方程可以将地下水储量的计算过程分解为3个部分,第一部分计算陆地水储量变化、第二部分计算地表水储量变化、第三部分计算冰后回弹改正、第四部分计算地下…

【已解决】使用token登录机制,token获取不到,blog_list.html界面加载不出来

Bug产生 今天使用token完成用户登录信息的存储的时候被卡了大半天。 因为登录的功能写的已经很多了&#xff0c;所以今天就没有写一点验一点&#xff0c;而是在写完获取博客列表功功能&#xff0c;验证完它的后端后&#xff0c;了解完令牌的基本使用以及Jwt的基本使用方式——…

【高校科研前沿】南科大姜丽光课题组在地球物理学领域TOP期刊Geophys. Res. Lett.发表极端气候频发下水库蓄水状态的相关研究成果

文章简介 论文名称&#xff1a;Reservoir Filling Up Problems in a Changing Climate:Insights From CryoSat‐2 Altimetry 第一作者及单位&#xff1a;汪志伟&#xff08;硕士研究生 南方科技大学环境学院&#xff09; 通讯作者及单位&#xff1a;姜丽光&#xff08;助理教…

ABB 控制柜

1,主计算机:相当于电脑的主机,用于存放系统和数据,需要24V直流电才能工作。执行用户编写的程序,控制机器人进行响应的动作。主计算机有很多接口,比如与编程PC连接的服务网口、用于连接示教器的网口、连接轴计算机板的接口、连接安全面板的接口、不同的现场总线卡接口(比…

Docker安装nginx详细教程

详细教程如下&#xff1a; 1. 拉取Nginx镜像 docker pull nginx默认拉最新的&#xff08;也可以根据自己的需求指定版本&#xff09; 2. 运行Nginx容器 docker run --name my-nginx -d -p 80:80 nginx--name my-nginx&#xff1a;容器名称&#xff0c;便于管理。-d&#xf…

降价潮背后:中国产业大模型落地的卡点到底在哪?

“技术是不会以任何商业行为或者人们的意愿所改变它的上限和下限的&#xff0c;它需要的时间是恒定的。 ” 作者|思杭 编辑|皮爷 出品|产业家 如果说中国大模型市场最核心的话题是什么&#xff1f;降价则必然是其中之一。 从目前的参赛玩家来看&#xff0c;不论是字节豆…

基于python flask的旅游数据大屏实现,有爬虫有数据库

背景 随着旅游行业的快速发展&#xff0c;数据在旅游决策和规划中的重要性日益凸显。基于 Python Flask 的旅游数据大屏实现研究旨在结合爬虫技术和数据库存储&#xff0c;为用户提供全面、实时的旅游信息展示平台。 爬虫技术作为数据采集的重要手段&#xff0c;能够从各种网…

自定义数据集上的3D目标检测:使用OpenPCDet训练CenterPointPillar模型

前言 在自动驾驶和机器人领域&#xff0c;3D目标检测是关键技术之一。它能够提供关于周围环境中物体的精确位置和尺寸信息。OpenPCDet是一个基于PyTorch的开源3D目标检测框架&#xff0c;支持多种3D检测网络。在本文中&#xff0c;我们将探讨如何使用OpenPCDet框架和CenterPoi…

redis 集群 底层原理以及实操

前言 上篇我们讲解了哨兵集群是怎么回事 也说了对应的leader选举raft算法 也说了对应的slave节点是怎么被leader提拔的 主要是比较优先级 比较同步偏移量 比较runid等等 今天我们再说说,其实哨兵也有很多缺点 虽然在master挂了之后能很快帮我们选举出新的master 但是对于单个ma…

计算机毕业设计 | SpringBoot个人博客管理系统(附源码)

1&#xff0c;绪论 1.1 背景调研 在互联网飞速发展的今天&#xff0c;互联网已经成为人们快速获取、发布和传递信息的重要渠道&#xff0c;它在人们政治、经济、生活等各个方面发挥着重要的作用。互联网上发布信息主要是通过网站来实现的&#xff0c;获取信息也是要在互联网中…

【Qt】初识

一、使用Label显示Hello World 1.ui设计 可以在Qt Designer中拖拽方式进行创建 2.代码方式 在myqwidget.cpp文件中添加下列代码 二、对象树 我们在堆上创建了QLabel类的对象。但是我们没有去delete&#xff0c;这样会产生内存泄漏吗&#xff1f; 答案是不会。label对象会在…

2024 京麟ctf -MazeCodeV1

文章目录 检查代码思路一个字节的指令注意附上S1uM4i佬们的exp https://www.ctfiot.com/184181.html 检查 代码 __int64 __fastcall check_solve(char *a1) {__int64 result; // rax__int64 v2; // rax__int64 index_step; // rax__int64 v4; // rax__int64 v5; // rax__int64…