Android---BottomAppBar

news2024/9/20 8:47:48

目录

BottomAppBar        

FloatingActionButton

UI 完整代码

BottomAppBar        

        Material Design 的一个重要特征是设计 BottomAppBar 。可适应用户不断变化的需求和行为。因此,BottomAppBar 是一个从标准物质指导的演变。它更注重功能,增加参与度,并可视化的锚定 UI 。

注意:要求 Activity 的主题必须是 MaterialComponents 的主题

style="@style/Widget.MaterialComponents.BottomAppBar.Colored"

  \bullet 可以通过 FabAlignmentMode, FabCradleMargin, FabCradleRoundedCornerRadius 和 FabCradleVerticalOffset 来控制 FAB(FloatingActionButton) 的放置;

  \bullet FabAlignmentMode: 可以设置为中心位置或结束(末尾)位置,默认是中心位置。如果 FabAttached 设置为 True,那么 Fab 将被布置为连接到 BottomAppBar;

  \bullet FabCradlelMargin: 设置 FAB 和 BottomAppBar 之间的间距,改变这个值会增加或减少 FAB 和 BottomAppBar 之间的距离;

  \bullet FabCradleRoundedCornerRadius 指定切口周围的圆角;

  \bullet FabCradleVerticalOffset: 指定 FAB 和 BottomAppBar 之间的垂直偏移量。如果值设置为0,则 FAB 的中心将与 BottomAppBar 的顶部对齐。 

FloatingActionButton

         FloatingActionButton(FAB) 是一个漂亮的按钮,其本质是一个 ImageView 。有一点要注意,Meterial Design 引入了 Z 轴的概念,就是所有的 View 都右了高度,它们一层一层贴在手机屏幕上,而 FloatingActionButton 的 Z 轴高度最高,它贴在所有 view 的最上面,没有 view 能覆盖它。

       FAB 是一个继承 ImageView 悬浮的动作按钮,经常用在一些比较常用的操作中,一个页面尽量只有一个 FloatingActionButton,否则会给用户一种错乱的感觉。FAB 的大小分为标准型(56dp)和迷你型(40dp),google 是这么要求的,如果你不喜欢可以自己设置其它大小。并且对于图标进行使用 Material Design 的图标,大小在 24dp 为最佳。

  \bullet android:src 设置相应图片;

  \bullet app:backgroundTint 设置背景颜色;

  \bullet app:borderWidth 设置边界的宽度。如果不设置,则默认为0dp,那么在4.1的 SDK 上 FAB 会显示为正方形,而在 5.0 以后的 SDK 没有阴影效果;

  \bullet app:elevation 设置阴影效果;

  \bullet app:pressedTranslationZ 设置按下时的阴影效果;

  \bullet app:fabSize 设置尺寸,默认是 normal。mormal 对应56dp, mini 对应40dp;

  \bullet app:layout_anchor 设置锚点,即相对于那个控件作为参考;

app:layout_anchor="@id/bottomAppBar"

  \bullet app:layout_anchorGravity 设置相对锚点的位置 top/bottom之类的参数;

  \bullet app:rippleColor 设置点击之后的涟漪颜色; 

UI 完整代码

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.coordinatorlayout.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <com.google.android.material.bottomappbar.BottomAppBar
            android:id="@+id/bottomAppBar"
            style="@style/Widget.MaterialComponents.BottomAppBar.Colored"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:fabAlignmentMode="center"
            app:fabAnimationMode="slide"
            app:fabCradleMargin="10dp"
            app:fabCradleRoundedCornerRadius="150dp"
            app:elevation="15dp"
            app:fabCradleVerticalOffset="5dp"
            android:layout_gravity="bottom"/>

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:fabSize="normal"
            app:layout_anchor="@id/bottomAppBar"
            />

    </androidx.coordinatorlayout.widget.CoordinatorLayout>


</androidx.constraintlayout.widget.ConstraintLayout>

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

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

相关文章

ansible 第三天

1.挂载本地光盘到/mnt 2.配置yum源仓库文件通过多种方式实现 仓库1 &#xff1a; Name: RH294_Base Description&#xff1a; RH294 base software Base urt: file:///mnt/BaseOS 不需要验证钦件包 GPG 签名 启用此软件仓库 仓库 2: Name: RH294_Stream Description &#xff1…

Android Studio 用WIFI无线调试adb (3种方法)

最近数据线一直被boss借走&#xff0c;一旦借走就无法调试了&#xff0c;所以就打算不用数据线调试了&#xff0c;使用WIFI进行调试。 一、命令 1、首先配置adb环境变量 首先找到andoridSDK的路径中的platform-tools文件夹 &#xff0c;将他的路径复制我的是 C:\Users\YiShi…

365天深度学习训练营-第P7周:YOLOv5-Backbone/YOLOv5-C3模块实现

目录 一、前言 二、我的环境 三、代码实现 1、C3模块 2、Backbone模块 一、前言 >- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营](https://mp.weixin.qq.com/s/xLjALoOD8HPZcH563En8bQ) 中的学习记录博客** >- **&#x1f366; 参考文章&#xff1a;36…

【算法】day03:动态规划dp

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录1. 青蛙跳台阶2. 矩形覆盖3. 二进制中1的个数4. 链表中倒数第k个结点普通小孩也要热爱生活&#xff01; 1. 青蛙跳台阶 跳台阶 1&#xff09;思路&#xff1a;如果青蛙在第n个台阶上&#xff0c;那么它要么来自n-1…

python命名规范

1.命名有字母、数字和下划线三个组成 2.项目名、包名、模块名、python文件名 都应该用英文开头&#xff0c;不能纯数字&#xff0c;否则无法识别 3.脚本名不能跟系统模块或三方模块重复 4.函数、类、方法、参数名称不能跟系统现有名称重复 5.类名必须以大写字母开头、除了类…

Kafka在windows下下载、启动、测试详细教程

目录 下载地址 启动 启动zookeeper 启动kafka 队列操作 创建消息队列名 删除消息队列名 查看所有的队列 测试 生产测试 消费测试 下载地址 Apache KafkaApache Kafka: A Distributed Streaming Platform.https://kafka.apache.org/downloadswindows下kafka3.0版本的…

G120系列变频器进行参数备份(上传或下载)的2种基本方法介绍(Startdrive+SD卡)

G120系列变频器进行参数备份(上传或下载)的2种基本方法介绍(Startdrive+SD卡) 1. 通过SINAMICS SD存储卡对G120系列变频器进行参数上传/下载的具体方法 适配范围:CU240B-2(DP)/CU240E-2(DP/PN)/CU250S-2(DP/PN) 可将变频器的参数设置保存至 SINAMICS SD 卡。在进行变频器更…

回归预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入多输出

回归预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入多输出 目录回归预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入多输出预测效果基本介绍程序设计往期精彩参考资料预测效果 基本介绍 MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入多输出&#xff0c;运行…

docker swarm 集群部署和验证

docker swarm可以轻松的部署集群,实现负载均衡,服务器的扩容和扩容的反义词. 首先docker的官方文档非常的不稳定,梯子也不解决问题.还好有替代 docs.docker.com 用不了 https://docs.docker.com.zh.xy2401.com/engine/swarm/swarm-tutorial/ 很好 场景: 三台机器 x.x.x.104 x.…

经典文献阅读之--FAST-LIVO(Fast-LIO系列的激光视觉惯性里程计)

0. 简介 在此之前博主对Fast-LIO2和R3LIVE进行了系统性的学习。最近文章《Fast and Tightly-coupled Sparse-Direct LiDAR-Inertial-Visual Odometry》提出了FAST-LIVO&#xff0c;这是一种快速LiDAR惯性-视觉里程计系统&#xff0c;它建立在两个紧耦合的直接里程计子系统之上…

结构体、枚举、联合(14)

目录 1、结构体 1、结构的声明 2、特殊的声明 2、结构的自引用 3、结构体变量的定义和初始化 4、结构体内存对齐 1、结构体的对齐规则&#xff1a; 2、为什么存在内存对齐? 3、修改默认对齐数 5、结构体传参 2、枚举 1、枚举类型的定义 2、使用 3、优点 3、联合…

MAC(m1)-Vagrant下载安装

Vagrant是一款用来构建虚拟开发环境的工具&#xff0c;它其实算是一个跨平台的虚拟机管理工具。 Vagrant是构建在虚拟化技术之上的虚拟运行环境管理工具。通过使用Vagrant我们可以快速去构建 我们想要的虚拟环境&#xff0c;同样其搭配virtualbox来进行使用&#xff0c;通过构…

重磅来袭!2023年大版本更新,看看有哪些是你期待的功能和优化吧

Hello&#xff01;好久不见&#xff0c;最近两个月我们的攻城狮和产品汪都在潜心的优化产品&#xff0c;我们将于1月5日上线 v10.7.0版本。本次版本迭代&#xff0c;我们更新了上百项体验优化&#xff0c;并将在未来几周发布更多功能和改进。 本次我们对前端底层架构进行优化重…

vue3笔记案例——Teleport使用之模态框

模态框 理想情况下&#xff0c;我们希望触发模态框的按钮和模态框本身是在同一个组件中&#xff0c;因为它们都与组件的开关状态有关。但这意味着该模态框将与按钮一起渲染在应用 DOM 结构里很深的地方。 使用 Teleport 传送组件可以将组件传送至其他层级的DOM结构中 效果图 …

数据流图实例应用

数据流图实例应用 参考链接&#xff1a; https://blog.csdn.net/xiaoxiang2017/article/details/81460397 https://blog.csdn.net/m0_53130858/article/details/127234104 数据流图&#xff1a;简称DFD&#xff0c;它从数据传递和加工角度&#xff0c;以图形方式来表达系统的逻…

Talk预告 | 几何的魅力: 黑盒攻击新策略

本期为TechBeat人工智能社区第468期线上Talk&#xff01; 北京时间1月4日(周三)20:00&#xff0c;清华大学软件工程专业博士——马晨的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “几何的魅力&#xff1a;黑盒攻击新策略”&#xff0c;届时将介…

【论文笔记】 Exploration With Task Information for Meta Reinforcement Learning

文章目录【论文笔记】 Exploration With Task Information for Meta Reinforcement LearningAbstractKeywordsI. INTRODUCTIONII. RELATED WORKA. Meta Reinforcement LearningB. Exploration in Meta-RLC. Mutual InformationIII. PRELIMINARIESA. Meta Reinforcement Learnin…

Shiro历史漏洞复现 - Shiro-721

文章目录漏洞原理影响版本特征判断环境搭建漏洞复现漏洞原理 Shiro rememberMe 反序列化远程代码执行漏洞 由于 Apache Shiro cookie 中通过 AES-128-CBC 模式加密的 rememberMe 字段存 在问题&#xff0c;用户可通过 Padding Oracle 加密生成的攻击代码来构造恶意的 remembe…

111.(leaflet之家)leaflet椭圆采集

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

yolov4/yolov4-tiny保姆级训练教学

目录 一、pytorch环境搭建 1.创建新环境 2.激活环境 3.按照版本下载 二、labelimg的安装 三、数据处理部分 1、rename数据文件 2、数据加强 四、yolov4训练过程 五、租用GPU 一、pytorch环境搭建 在安装anaconda的前提下 在编译器pycharm的终端 1.创建新环境 conda …