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

抖音客户端训练营--day2

常见的布局

布局的选择依赖于对性能的需求,其中约束布局的效果最好,但是学习成本高

帧布局

是最简单的布局容器,将所有的子元素堆叠在一起,默认放置在左上角,新添加的元素会覆盖在之前元素的上方,形成层叠效果

线性布局

这是最基本的布局方式,适用于简单的线性排列需求

约束布局

每个视图都有八个约束锚点:如图所示

包含上下左右四边以及四个角,可以与其他视图的锚点或者父容器建立约束关系 

链和屏障

chain:将多个视图以链的形式连接,控制它们的排列方式

barrier:为一组视图创建虚拟屏障,其余视图可以依赖此屏障定位

ConstraintLayout 是 Android 开发中用于构建复杂用户界面(UI)的​​布局容器​​,属于 Android Jetpack 组件库的一部分。它的核心思想是通过定义​​约束关系(Constraints)​​来确定子控件的位置和尺寸,替代传统布局(如 LinearLayoutRelativeLayout)的层级嵌套,从而实现更灵活、高效的 UI 设计。

不需要使用层级的方式,只有一层

<androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><!-- 按钮 A 左侧对齐父布局左侧,顶部对齐父布局顶部 --><Buttonandroid:id="@+id/buttonA"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="A"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><!-- 按钮 B 左侧对齐按钮 A 右侧,顶部对齐父布局顶部 --><Buttonandroid:id="@+id/buttonB"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="B"app:layout_constraintStart_toEndOf="@+id/buttonA"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>

使用Layer操作进行分组

<androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><!-- 定义控件 --><ImageViewandroid:id="@+id/image"... /><TextViewandroid:id="@+id/title"... /><Buttonandroid:id="@+id/button"... /><!-- 定义 Layer --><androidx.constraintlayout.helper.widget.Layerandroid:id="@+id/layer"android:layout_width="wrap_content"android:layout_height="wrap_content"app:constraint_referenced_ids="image,title,button"  <!-- 关联控件 -->android:rotation="0"  <!-- 初始旋转角度 -->android:translationY="0dp" /> <!-- 初始平移位置 --></androidx.constraintlayout.widget.ConstraintLayout>

代码中的使用

val layer = findViewById<Layer>(R.id.layer)// 统一旋转
layer.rotation = 45f// 统一平移
layer.translationX = 100f// 统一缩放
layer.scaleX = 0.8f
layer.scaleY = 0.8f

常见的UI控件以及使用

1. imageview:src设置图片资源,background 设置背景,tint 设置图片着色

2. scaleType:

 

使用图片加载库 

recyclerView:可以活动的组件,高效显示大量数据集 

 EditText:

继承自Textview,在文本显示的基础上,增加了文本编辑能力,允许用户通过触摸键盘输入和编辑文本

Toast:提示,表示用户的动作

snackbar:增加了交互部分

dialog:层级高于应用的,覆盖常用的页面上面,由自己创建和管理

activity 的生命周期

Activity 是安卓应用的基础部分,代表用户可以执行操作的单个屏幕

生命周期回调函数

Android 数据存储方案概述

相关文章:

  • 第13讲、Odoo 18 配置文件(odoo.conf)详细解读
  • [Android] APK安装器 V20160330-6.0
  • 重学计算机网络之以太网
  • 精英-探索双群协同优化(Elite-Exploration Dual Swarm Cooperative Optimization, EEDSCO)
  • 基于 Zynq 平台的 EtherCAT 主站的软硬件协同设计
  • wsl安装linux
  • 【火山引擎 大模型批量处理数据教程-详细】
  • 从前端工程化角度解析 Vite 打包策略:为何选择 Rollup 而非 esbuild。
  • Windows搭建Swift语言编译环境?如何构建ObjC语言编译环境?Swift如何引入ObjC框架?Interface Builder的历史?
  • 数据库,Spring Boot,数据源
  • Unity Mono与IL2CPP比较
  • 【CF】Day72——Codeforces Round 890 (Div. 2) CDE1 (二分答案 | 交互 + 分治 | ⭐树上背包)
  • 多模态大语言模型arxiv论文略读(103)
  • Java抽象工厂模式详解
  • 【计算机网络】第3章:传输层—面向连接的传输:TCP
  • Linux下目录递归拷贝的单进程实现
  • RuoYi前后端分离框架实现前后端数据传输加密(二)之前端篇
  • 如何用docker部署ELK?
  • 设计模式——观察者设计模式(行为型)
  • 在 SpringBoot+Tomcat 环境中 线程安全问题的根本原因以及哪些变量会存在线程安全的问题。
  • 生态旅游网站的建设/百度人工申诉客服电话
  • 广东像一起做网店的网站/seo工作是什么意思
  • 网页制作培训多少钱一天/移动网站如何优化排名
  • 做招聘和求职都需要哪些网站/宁波seo推广优化怎么做
  • jsp网站建设/百度高级检索入口
  • 长沙专业做网站/新东方