AndroidSweetSheet

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/49700479 介绍:一个富有动感的Sheet(选择器), 支持背景虚化,背景暗化,支持快速拓展.支持从 Menu 中填充数据。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/49700479

介绍:

一个富有动感的Sheet(选择器), 支持背景虚化,背景暗化,支持快速拓展.支持从 Menu 中填充数据。

运行效果:

使用说明:

上面是设计图,demo运行效果图:


MainActivity.class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
     //添加假数据
 
     MenuEntity menuEntity= new  MenuEntity();
     menuEntity.resId=R.drawable.ic_account_child;
     menuEntity.name= "QQ" ;
     list.add(menuEntity);
     list.add(menuEntity);
     list.add(menuEntity);
     list.add(menuEntity);
     list.add(menuEntity);
     list.add(menuEntity);
     list.add(menuEntity);
     list.add(menuEntity);
     list.add(menuEntity);
     list.add(menuEntity);
     list.add(menuEntity);
     list.add(menuEntity);
     list.add(menuEntity);
 
     //根据Type生成对应的样式 SweetSheet 控件,根据 rl 确认位置
     mSweetSheet =  new  SweetSheet(rl, SweetSheet.Type.RecyclerView);
     //设置数据源 FragmentManager 在样式为Viewpager 是必须的, RecyclerView样式可以为 null, 不影响运行
     mSweetSheet.setMenuList(getSupportFragmentManager(), list);
     //设置背景灰度
     mSweetSheet.setBackgroundDim(0.8f);
 
     //设置点击事件
     mSweetSheet.setOnMenuItemClickListener( new  SweetSheet.OnMenuItemClickListener() {
     @Override
     public boolean onItemClick(int position) {
             //根据返回值, true 会关闭 SweetSheet ,false 则不会.
             Toast.makeText(MainActivity. this ,list.get(position).name+ "             " +position,Toast.LENGTH_SHORT).show();
             return  true ;
         }
     });

监听返回

1
2
3
4
5
6
7
8
9
10
11
     @Override
     public void onBackPressed() {
 
         if (mSweetSheet.isShow()){
 
             mSweetSheet.dismiss();
         }
         else {
             super .onBackPressed();
         }
     }

注意:

  1. 目前SweetSheet支持的样式2种:SweetSheet.Type.RecyclerView 和 SweetSheet.Type.Viewpager

  2. 关于:SweetSheet.setMenuList(FragmentManager fm, LIst list); 第一个参数是用了做ViewPager的适配器使用的,类型SweetSheet.Type.RecyclerView 可以传null;

  3. 暂不支持使用LinearLayout 作为mSweetSheet 的父控件.

特点 (1.1):

  1. 支持从menu中创建.

  2. 优化SweetSheet.Type.RecyclerView 的体验.

  3. gradle的支持

  4. 支持简单的扩展



相关文章
|
4月前
|
XML Java 数据库连接
MyBatis--映射关系一对一和MyBatis--映射关系多对一 -都有基于xml和注解的教程
MyBatis--映射关系一对一和MyBatis--映射关系多对一 -都有基于xml和注解的教程
90 0
|
4月前
|
弹性计算 监控 应用服务中间件
TR转发路由器测评
CEN云企业网下的TR转发路由器是实现多网、跨地域连接的核心元件。本文通过4 个 基础测试场景,来测评下 TR转发路由器的功能和使用过程。
108440 0
|
4月前
|
Windows
Windows常用快捷键与终端命令
Windows常用快捷键 1、Ctrl + Z:撤消 无论你在做什么,Ctrl + Z都非常实用,这个功能都可以撤销当前的步骤,回到上一步未更改前,所以不要担心所有的错误。 2、Ctrl + C:复制 这可能是人们在使用Windows系统时使用的最方便的快捷键之一,轻松复制您喜欢的任何内容,直到您准备将其粘贴到任何您喜欢的位置。 3、Ctrl + V:粘贴 轻松粘贴您复制的所有内容,它可以是文本、文件、图像或文件夹,将所有东西组合在一起的非常有用的功能。
365 1
|
8天前
|
NoSQL Cloud Native Redis
Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新
阿里云瑶池数据库团队后续将持续参与Valkey社区,如过往在Redis社区一样耕耘,为开源社区作出持续贡献。
Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新
|
8天前
|
关系型数据库 分布式数据库 数据库
PolarDB闪电助攻,《香肠派对》百亿好友关系实现毫秒级查询
PolarDB分布式版助力《香肠派对》实现百亿好友关系20万QPS的毫秒级查询。
PolarDB闪电助攻,《香肠派对》百亿好友关系实现毫秒级查询
|
9天前
|
消息中间件 Cloud Native Serverless
RocketMQ 事件驱动:云时代的事件驱动有啥不同?
本文深入探讨了云时代 EDA 的新内涵及它在云时代再次流行的主要驱动力,包括技术驱动力和商业驱动力,随后重点介绍了 RocketMQ 5.0 推出的子产品 EventBridge,并通过几个云时代事件驱动的典型案例,进一步叙述了云时代事件驱动的常见场景和最佳实践。
140787 2
|
10天前
|
弹性计算 安全 API
访问控制(RAM)|云上安全使用AccessKey的最佳实践
集中管控AK/SK的生命周期,可以极大降低AK/SK管理和使用成本,同时通过加密和轮转的方式,保证AK/SK的安全使用,本次分享为您介绍产品原理,以及具体的使用步骤。
101876 3
|
6天前
|
物联网 PyTorch 测试技术
手把手教你捏一个自己的Agent
Modelscope AgentFabric是一个基于ModelScope-Agent的交互式智能体应用,用于方便地创建针对各种现实应用量身定制智能体,目前已经在生产级别落地。
|
9天前
|
自然语言处理 Cloud Native Serverless
通义灵码牵手阿里云函数计算 FC ,打造智能编码新体验
近日,通义灵码正式进驻函数计算 FC WebIDE,让使用函数计算产品的开发者在其熟悉的云端集成开发环境中,无需再次登录即可使用通义灵码的智能编程能力,实现开发效率与代码质量的双重提升。
95450 3
|
2天前
|
机器人 Linux API
基于Ollama+AnythingLLM轻松打造本地大模型知识库
Ollama是开源工具,简化了在本地运行大型语言模型(ile优化模型运行,支持GPU使用和热加载。它轻量、易用,可在Mac和Linux上通过Docker快速部署。AnythingLLM是Mintplex Labs的文档聊天机器人,支持多用户、多种文档格式,提供对话和查询模式,内置向量数据库,可高效管理大模型和文档。它也是开源的,能与Ollama结合使用,提供安全、低成本的LLM体验。这两款工具旨在促进本地高效利用和管理LLMs。
52502 19