开源项目:底部动作条(BottomSheet)
底部动作条(BottomSheet)是一个从屏幕底部边缘向上滑出的一个面板,给用户呈现一组功能选项。底部动作条封装了一组简单、清晰、无需额外说明的操作。底部动作条(如下图)可以是列表样式的,也可以是宫格样式的。

根据Material Design设计规范,如果只有两个或更少的操作,可以考虑菜单或者对话框来实现。但是当有三个或三个以上的操作需要提供给用户选择时,底部动作条就有了用武之地,可以作为对话框和菜单的替代产品应用到实际的开发实践中。
笔者通过继承Dialog类实现了一个简单版本、列表样式的底部动作条,下面介绍具体的使用方法。
安装方法
在Android Studio中,以导入Module的方式添加BottomSheet依赖(jCenter Remote Library Dependency等待更新...)。
基本用法
BottomSheet bottomSheet = new BottomSheet(this);
bottomSheet.setTitle("Bottom Sheet");
bottomSheet.addItem(R.mipmap.quiz_bottom_download, "下载", new View.OnClickListener() {
@Override
public void onClick(View v) {
makeToast("下载!");
bottomSheet.dismiss();
}
});
bottomSheet.addItem(R.mipmap.quiz_bottom_favorite, "喜欢", new View.OnClickListener() {
@Override
public void onClick(View v) {
makeToast("喜欢!");
bottomSheet.dismiss();
}
});
bottomSheet.addItem(R.mipmap.quiz_bottom_answer, "答案", new View.OnClickListener() {
@Override
public void onClick(View v) {
makeToast("答案!");
bottomSheet.dismiss();
}
});
bottomSheet.addItem(R.mipmap.quiz_bottom_share, "分享", new View.OnClickListener() {
@Override
public void onClick(View v) {
makeToast("分享!");
bottomSheet.dismiss();
}
});
bottomSheet.show();
设计思想
关键是对setContentView()方法的重写。setContentView()实际承担着底部动作条的绘制,事件处理的任务,读者可以对该方法定制实现自己底部动作条。
效果截图

下载链接:链接: http://pan.baidu.com/s/1gduaTOZ 密码: jnmu。
开源项目:底部动作条(BottomSheet)的更多相关文章
- BottomSheet底部动作条使用
底部动作条 底部动作条(Bottom Sheets)是一个从屏幕底部边缘向上滑出的一个面板,使用这种方式向用户呈现一组功能.底部动作条呈现了简单.清晰.无需额外解释的一组操作. 使用环境 底部动作条( ...
- Android开源项目——带图标文字的底部导航栏IconTabPageIndicator
接下来的博客计划是,在<Android官方技术文档翻译>之间会发一些Android开源项目的介绍,直接剩下的几篇Android技术文档发完,然后就是Android开源项目和Gradle翻译 ...
- ProgressBar 进度条开源项目总结
在Android开发中,我们不免会遇到进度条展示的需求,以下是本人之前star的开源项目,供大家参考: 一.ArcProgressBar 开源项目地址:https://github.com/zenoT ...
- [iOS微博项目 - 4.5] - 每条微博的底部工具条
github: https://github.com/hellovoidworld/HVWWeibo A.每条微博的底部工具条 1.需求 每条微博底部都有一个工具条 显示3个按钮:评论.转发.赞 按钮 ...
- 最新最全的 Android 开源项目合集
原文链接:https://github.com/opendigg/awesome-github-android-ui 在 Github 上做了一个很新的 Android 开发相关开源项目汇总,涉及到 ...
- GitHub 优秀的 Android 开源项目(转)
今天查找资源时看到的一篇文章,总结了很多实用资源,十分感谢原作者分享. 转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介 ...
- GitHub 优秀的 Android 开源项目
转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...
- GitHub 优秀Android 开源项目
阅读目录 1.Xabber客户端 2.oschina客户端 3.手机安全管家 4.星座连萌 5.玲闹铃 6.魔乐盒 7.PWP日历 8.Apollo音乐播放器 9.夏普名片识别 10.高仿人人网 11 ...
- 【转】GitHub 优秀的 Android 开源项目
转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...
随机推荐
- libpomelo 增加编译静态库cocos2d-x xcode 工程
离 https://github.com/NetEase/libpomelo 下载最新版本.拉开拉链,静态库 ./pomelo_gyp -DTO=ios ./build_ios ./build_ios ...
- nyoj 47 江 河问题 【贪婪】
经典的贪婪. 两种方案:一个:让我们来最快,第二快,在过去的第一,最快的回.然后最慢,最慢第二,在过去.次最快的回来a[0]+a[1]+a[1]+a[n-1] 二:最快的和最慢的过去,最快的回来,最快 ...
- VMware vSphere 服务器虚拟化之十六 桌面虚拟化之VMware Horizon View
VMware vSphere服务器虚拟化之十六 桌面虚拟化之VMware Horizon View VMware Horizon View (原VMware View的升级版现在版本5.2)是 ...
- nodejs添加路由route步骤详解
首先,毋庸置疑, 新建一个基础express站点.建好之后, 有三个文件需要code(当然,三个步骤顺序随意). 下面以添加一个'/about'为例说明. 1. 在views文件夹里,新建一个jade ...
- android对app代码混淆
接到新任务.现有项目的代码混淆.在此之前混淆了一些理解,但还不够具体和全面,我知道有些东西混起来相当棘手. 但幸运的是,现在这个项目是不是太复杂(对于这有些混乱).提前完成--这是总结. 第一部分 介 ...
- ECG信号读出,检测QRS,P,T 波(小波去噪,并根据检测),基于BP辨识的神经网络
这学期的课程选择神经网络.最后的作业处理ECG信号,并利用神经网络识别. 1 ECG引进和阅读ECG信号 1)ECG介绍 详细ECG背景应用就不介绍了,大家能够參考百度 谷歌.仅仅是简单说下ECG ...
- 我见过最好的vsftpd配置教程(转)
环境:CentOS 5.0 操作系统一.安装:1.安装Vsftpd服务相关部件:[root@KcentOS5 ~]# yum install vsftpd*Dependencies Resolved= ...
- UI标签库的话题:JEECG智能开发平台 BaseTag(样式表和JS标签的引入)
UI标签库专题一:JEECG智能开发平台 BaseTag(样式表和JS引入标签) 1.BaseTag(样式表和JS引入标签) 1.1. 演示样例 <t:base type="jquer ...
- MVC 应用免受 CSRF攻击
保护ASP.NET 应用免受 CSRF 攻击 CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack ...
- 用PowerDesigner生成自定义建表语句
原文:用PowerDesigner生成自定义建表语句 我们经常用PowerDesigner来进行数据库表结构的设计,并且设计出来的表比较直观的看出之间的相互关系,方便理解:但其自动生成的脚本并不一定符 ...