零基础开始学习鸿蒙开发-读书app简单的设计与开发

news2024/11/24 3:42:57

目录

1.首页设计

2.发现页面的设计

3.设置页面的设计

4.导航页设计

5.总结:

6.最终的效果


1.首页设计

@Entry
@Component
export struct home {
  @State message: string = '首页'
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

2.发现页面的设计

// Index.ets
@Entry
@Component
export struct find {
  @State message: string = '发现'
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

3.设置页面的设计

// Index.ets
@Entry
@Component
export struct setting {
  build() {
    Column({space:10}){
    Row(){
      List(){
        ListItemGroup({space:20}){
          ListItem(){
            Row({space:240}){
             Row(){
               Image($r('app.media.msg')).width(20).height(20)
               Text('我的消息').fontColor(Color.Gray).fontWeight(FontWeight.Bolder).fontSize(20)
             }
                Image($r('app.media.enter')).width(20).height(20)

            }.width('100%').align(Alignment.End)
          }
          ListItem(){
            Row({space:240}){
              Row(){
                Image($r('app.media.comment')).width(20).height(20)
                Text('我的书评').fontColor(Color.Gray).fontWeight(FontWeight.Bolder).fontSize(20)
              }
              Image($r('app.media.enter')).width(20).height(20)

            }.width('100%').align(Alignment.End)
          }
          ListItem(){
            Row({space:240}){
              Row(){
                Image($r('app.media.notice')).width(20).height(20)
                Text('我的笔记').fontColor(Color.Gray).fontWeight(FontWeight.Bolder).fontSize(20)
              }
              Image($r('app.media.enter')).width(20).height(20)

            }.width('100%').align(Alignment.End)
          }
        }
      }.margin({top:'50%'})
    }
      Row(){
        Text('未完待续...').fontSize(30).fontWeight(FontWeight.Bolder)
      }
    }.width('100%')
    .height('100%')


  /*  Row() {

      Column() {


        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')*/
  }
}

4.导航页设计

import {find} from '../pages/find'
import {home} from '../pages/home'
import {setting} from '../pages/setting'
@Entry
@Component
struct Index {
  private controller: TabsController = new TabsController()
  @State gridMargin: number = 10
  @State gridGutter: number = 10
  @State sm: number = -2
  @State clickedContent: string = "";

  build() {
    Column() {

      Tabs({ barPosition: BarPosition.End, controller: this.controller }) {
        TabContent() {
          home({message:'首页'})
        }.tabBar(new BottomTabBarStyle($r("app.media.home"), "首页"))

        TabContent() {
          find({message:'发现'})
        }.tabBar(new BottomTabBarStyle($r("app.media.find"), "发现"))

        TabContent() {
          setting()
        }.tabBar(new BottomTabBarStyle($r("app.media.setting"), "设置"))
      }
      .animationDuration(800)
      .height('100%')
      .backgroundColor(0xf1f3f5)
    }
    .width('100%')
    .height('100%')
  }
}

5.总结:

首先设计导航页,使用Tabs设计导航栏,通过航栏的子栏设计页面,通过import引入相关页面,然后通过点击进入该导航页。

重点:setting页面的设计,主要是同各国Column和Row两个属性进行线性布局,然后再通过List进行页面子项的列表布局。

通过Image引入相关的图片,然后使用with和height设计图片的宽高。

6.最终的效果

感谢大家的支持,每天学一点,也许你离成功就越进一步。

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

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

相关文章

Golang-map理解

golang-map语雀笔记整理 map的底层实现hmapbmap map是如何做到O(1)的复杂度的?map扩容策略 师兄问题回答 map的底层实现 hmap hmap的结构体核心字段有:buckets 桶数组地址, B 定位值,桶的数目是2^B个, count 当前map的…

Java基础(三)——类和对象、构造方法

个人简介 👀个人主页: 前端杂货铺 ⚡开源项目: rich-vue3 (基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL) 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 &#x1…

Vue-cli项目及Element UI 环境搭建 保姆级教程

一、Vue-cli介绍及其作用 什么是Vue-cli手脚架 vue-cli 官方提供的一个脚手架,用于快速生成一个 vue 的项目模板;预先定义 好的目录结构及基础代码,就好比咱们在创建 Maven 项目时可以选择创建一个 骨架项目,这个骨架项目就是脚…

环回接口处理 IP 数据报的过程及 Loopback 接口的主要作用

环回接口处理 IP 数据报的过程 IPv4 中 传给环回地址(127.0.0.1)的任何数据均作为 IP 输入,直接送到环回接口(环回:IP 输入队列)。 传给广播地址或多播地址的数据报,会复制一份传给环回接口&…

MySQL高阶:事务和并发

事务和并发 1. 事务创建事务 2. 并发和锁定并发问题 3. 事务隔离等级3.1 读取未提交隔离级别3.2 读取已提交隔离级别3.3 重复读取隔离级别3.4 序列化隔离级别 4. 死锁 1. 事务 事务(trasaction)是完成一个完整事件的一系列SQL语句。这一组SQL语句是一条…

昇思25天学习打卡营第02天 | 快速入门

昇思25天学习打卡营第02天 | 快速入门 文章目录 昇思25天学习打卡营第02天 | 快速入门数据准备网络构建模型训练模型测试迭代数据集模型保存加载模型总结打卡 数据准备 MindSpore通过Dataset和Transforms实现高效的数据预处理 使用download下载数据,并创建数据集对…

Qt项目天气预报(8) - 绘制温度曲线 + 回车搜索(最终篇)

全部内容在专栏: Qt项目 天气预报_mx_jun的博客-CSDN博客 目录 绘制温度曲线 事件过滤器在子控件上绘图 子控件下载事件过滤器 事件过滤器进行绘图 - eventFilter 画初步高温曲线 画初步低温曲线 效果演示 画低温曲线 画高温曲线 效果演示 按下回车搜索: …

LDM论文解读

论文名称:High-Resolution Image Synthesis with Latent Diffusion Models 发表时间:CVPR2022 作者及组织:Robin Rombach, Andreas Blattmann, Dominik Lorenz,Patrick Esser和 Bjorn Ommer, 来自Ludwig Maximilian University of Munich &a…

AI奏响未来乐章:音乐界的革命性变革

AI在创造还是毁掉音乐 引言 随着科技的飞速发展,人工智能(AI)正在逐渐渗透到我们生活的每一个角落,音乐领域也不例外。AI技术的引入,不仅为音乐创作、教育、体验带来了革命性的变革,更为整个音乐产业注入了…

顺序表应用——通讯录

在本篇之前的顺序表专题我们已经学习的顺序表的实现,了解了如何实现顺序表的插入和删除等功能,那么在本篇当中就要学习基于顺序表来实现通讯录,在通讯录当中能实现联系人的增、删、查改等功能,接下来就让我们一起来实现通讯录吧&a…

民用无人机企业招标投标需要资质证书详解

一、基础资质 在民用无人机企业的招标投标过程中,基础资质是首要考虑的因素。这些资质通常包括企业注册资质、税务登记证、组织机构代码证等。 1.1 企业注册资质 企业应具备合法的注册资质,即营业执照。该执照应包含企业名称、注册地址、法定代表人、…

Java [数据结构] Deque与Queue

🤺深入理解 Java 中的 Deque 和 Queue🤺 在现代软件开发中,数据结构是构建高效、可维护代码的基础。 Java 作为一门广泛应用的编程语言,其丰富的集合框架(Collections Framework)为开发者提供了多种强大的…

Zabbix 排坑版 Centos7

systemctl stop firewalld;systemctl disable firewalld;setenforce 0sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/configzabbix源地址,可以自己选版本,安装都大差不差 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5…

【车载开发系列】S32 Design Studio工具安装步骤

【车载开发系列】S32 Design Studio工具安装步骤 S32 Design Studio工具安装步骤 【车载开发系列】S32 Design Studio工具安装步骤※关键字提炼※一. 准备工作二. 下载安装包三. 获取License许可四. 开始预安装五. 开始正式安装六. 启动软件七. 安装插件八. 卸载插件九. 确认安…

【操作系统】进程管理——进程控制和进程通信(个人笔记)

学习日期:2024.6.30 内容摘要:进程控制的概念,进程控制相关的“原语”,进程通信 进程控制 原语 进程控制用“原语”实现。原语是一种特殊的程序,它的执行具有原子性,也就是说,这段程序的执行…

vs code python开发笔记

目录 选择python 解析器 安装插件 不全: 调试启动目录问题: 2.选择python解释器 选择python 解析器 ctrl shift P select interpreter 安装插件 不全: remote ssh python debuger 左下角,点击左右左右箭头,远程…

后端之路第三站(Mybatis)——JDBC跟Mybatis、lombok

一、什么是JDBC JDBC就是sun公司研发的一套通过java来操控数据库的工具,对应不同的数据库系统有不同的JDBC,而他们统称【驱动】,这就是上一篇我们提到创建Mybatis项目时要引入的依赖、以及连接数据库四要素里的第一要素。 JDBC有自己一套原始…

Redis 7.x 系列【8】数据类型之哈希(Hash)

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 HSET2.2 HGET2.3 HDEL2.4 HEXISTS2.5 HGETALL2.6 HKEYS2.7 HLE…

grpc学习golang版( 五、多proto文件示例 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件2.1 公共proto文件2.2 语音唤醒proto文…

探索MySQL核心技术:理解索引和主键的关系

在数据密集型应用中,数据库的性能往往是决定一个应用成败的重要因素之一。其中,MySQL作为一种开源关系型数据库管理系统,以其卓越的性能和丰富的功能被广泛应用。而在MySQL数据库优化的众多技巧中,索引和主键扮演着极其重要的角色…