简介

Dialog 的基础上重新定制了 show()hide() 时的动画效果, 使 Dialog 在界面底部升起和降下。提供了以下两个面板样式:
列表样式:使用 QMUIBottomSheet.BottomListSheetBuilder 生成。
宫格类型:使用 QMUIBottomSheet.BottomGridSheetBuilder 生成。

开始使用

qmui

  1. 引入库
    请确保配置了 JCenter 仓库源,然后直接引用:
    implementation "com.qmuiteam:qmui:2.0.0-alpha10"
    至此,QMUI 已被引入项目中。

  2. 配置主题
    把项目的 theme 的 parent 指向 QMUI.Compat,至此,QMUI 可以正常工作。
    <style name="Theme.QMUIDemo" parent="QMUI.Compat.NoActionBar"></style>

效果图

核心代码

public class BottomSheetActivity extends BaseActivity {final int TAG_SHARE_WECHAT_FRIEND = 0;final int TAG_SHARE_WECHAT_MOMENT = 1;final int TAG_SHARE_WEIBO = 2;final int TAG_SHARE_CHAT = 3;final int TAG_SHARE_LOCAL = 4;@BindView(R.id.topbar)QMUITopBar mTopBar;@Overrideprotected int getLayoutId() {return R.layout.activity_bottom_sheet;}@Overrideprotected void initView() {mTopBar.setTitle("底页弹框");mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {finish();}});}@OnClick({R.id.qmui_take,R.id.qmui_select,R.id.qmui_share})public void clicked(View view) {switch (view.getId()) {case R.id.qmui_take:showBottomSheet();break;case R.id.qmui_select:showBottomSheetWithTitle();break;case R.id.qmui_share:showBottomSheetWithShare();break;default:break;}}private void showBottomSheetWithShare() {QMUIBottomSheet.BottomGridSheetBuilder builder = new QMUIBottomSheet.BottomGridSheetBuilder(this);builder.addItem(R.mipmap.icon_more_operation_share_friend, "分享到微信", TAG_SHARE_WECHAT_FRIEND,QMUIBottomSheet.BottomGridSheetBuilder.FIRST_LINE).addItem(R.mipmap.icon_more_operation_share_moment, "分享到朋友圈", TAG_SHARE_WECHAT_MOMENT,QMUIBottomSheet.BottomGridSheetBuilder.FIRST_LINE).addItem(R.mipmap.icon_more_operation_share_weibo, "分享到微博", TAG_SHARE_WEIBO,QMUIBottomSheet.BottomGridSheetBuilder.FIRST_LINE).addItem(R.mipmap.icon_more_operation_share_chat, "分享到私信", TAG_SHARE_CHAT,QMUIBottomSheet.BottomGridSheetBuilder.FIRST_LINE).addItem(R.mipmap.icon_more_operation_save, "保存到本地", TAG_SHARE_LOCAL,QMUIBottomSheet.BottomGridSheetBuilder.SECOND_LINE).setAddCancelBtn(true).setSkinManager(QMUISkinManager.defaultInstance(this)).setOnSheetItemClickListener(new QMUIBottomSheet.BottomGridSheetBuilder.OnSheetItemClickListener() {@Overridepublic void onClick(QMUIBottomSheet dialog, View itemView) {dialog.dismiss();int tag = (int) itemView.getTag();switch (tag) {case TAG_SHARE_WECHAT_FRIEND:Toast.makeText(BottomSheetActivity.this, "分享到微信", Toast.LENGTH_SHORT).show();break;case TAG_SHARE_WECHAT_MOMENT:Toast.makeText(BottomSheetActivity.this, "分享到微信朋友圈", Toast.LENGTH_SHORT).show();break;case TAG_SHARE_WEIBO:Toast.makeText(BottomSheetActivity.this, "分享到微博", Toast.LENGTH_SHORT).show();break;case TAG_SHARE_CHAT:Toast.makeText(BottomSheetActivity.this, "分享到私信", Toast.LENGTH_SHORT).show();break;case TAG_SHARE_LOCAL:Toast.makeText(BottomSheetActivity.this, "保存到本地", Toast.LENGTH_SHORT).show();break;}}}).build().show();}private void showBottomSheetWithTitle() {new QMUIBottomSheet.BottomListSheetBuilder(this).setTitle("请选择所在的部门").addItem(ContextCompat.getDrawable(this, R.mipmap.icon_tabbar_util),"研发部").addItem(ContextCompat.getDrawable(this, R.mipmap.icon_tabbar_util),"售后部").addItem(ContextCompat.getDrawable(this, R.mipmap.icon_tabbar_util),"品质部").addItem(ContextCompat.getDrawable(this, R.mipmap.icon_tabbar_util),"工程部").addItem(ContextCompat.getDrawable(this, R.mipmap.icon_tabbar_util),"人事部").setAllowDrag(true).setGravityCenter(false).setNeedRightMark(true).setCheckedIndex(3).setAddCancelBtn(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {@Overridepublic void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {dialog.dismiss();Toast.makeText(BottomSheetActivity.this, "you clicked " + position,Toast.LENGTH_SHORT).show();}}).build().show();}private void showBottomSheet() {new QMUIBottomSheet.BottomListSheetBuilder(this).addItem("拍照").addItem("相册").setAddCancelBtn(true).setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {@Overridepublic void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {dialog.dismiss();Toast.makeText(BottomSheetActivity.this, "you clicked " + position,Toast.LENGTH_SHORT).show();}}).build().show();}
}

【Kevin Learn QMUI】--> QMUIBottomSheet相关推荐

  1. 【Kevin Learn QMUI】--> QMUIPopup

    简介 qmui 提供一个浮层,支持自定义浮层的内容,支持在指定 View 的任一方向旁边展示该浮层,支持自定义浮层出现/消失的动画. 开始使用 qmui 引入库 请确保配置了 JCenter 仓库源, ...

  2. 【Kevin Learn QMUI】-->qmui 知识梳理

    不断学习,做更好的自己!

  3. 【Kevin Learn QMUI】--> QMUISlider

    不断学习,做更好的自己!

  4. 【Kevin Learn QMUI】--> Android Studio 大黄蜂使用介绍

    不断学习,做更好的自己!

  5. 【Kevin Learn QMUI】--> QMUIViewPager

    不断学习,做更好的自己!

  6. 【Kevin Learn QMUI】-->QMUIDialog

    不断学习,做更好的自己!

  7. 【Kevin Learn QMUI】-->QMUILinkTextView

    不断学习,做更好的自己!

  8. 【Kevin Learn QMUI】-->QMUITipDialog

    不断学习,做更好的自己!

  9. 【Kevin Learn QMUI】--> QMUIProgressBar

    不断学习,做更好的自己!

最新文章

  1. TensorFlow Dropout
  2. Android Studio打包程序时出现transformClassesWithDexForRelease错误
  3. kaggle研究生招生(下)
  4. 两条实用的 SQL 语句
  5. kaggle颅内出血比赛分析
  6. 文件服务器访问权限分配,设置文件服务器的访问权限
  7. php注入教程,php注入点构造代码实例详解
  8. lua软件测试自动化,一种基于Lua脚本的嵌入式软件自动化测试系统及方法专利_专利查询 - 天眼查...
  9. honeywell新风系统控制面板说明_觉得家里新风不给力了?一定是你不知道这些!
  10. [转载] Python中while循环的基本用法
  11. stringbuilder_String,StringBuilder,StringBuffer三者的区别?
  12. Oracle v$sql,v$sqlarea,v$sqltext区别
  13. Apache 开启伪静态模块
  14. Android Gallery 3D 特效精华
  15. Google-Spyder:Google搜索引擎关键词检索结果抓取
  16. 2018引汉济渭计算机监控系统,基于数字水网的引汉济渭受水区水资源调配业务化研究与应用...
  17. 转:听听别人怎么说:VueJS 与 ReactJS
  18. Outlook Express 收发邮件出现0x800CCC0F错误代码解决方法
  19. 如何利用TFTP协议发动DDoS放大攻击
  20. 通过百度地图API获取用户所在地理位置信息

热门文章

  1. word中多级项目符号的使用
  2. MySQL配置无法写入与服务无法启动解决办法
  3. 计算机二级Python真题(五)
  4. 使用incognito劫持身份psexec调用远程cmd
  5. QT使用阿里巴巴矢量图标库设置窗口图标、菜单栏项图标、工具栏项图标、状态栏图标以及将控件设置为图标
  6. 【GeoTools】geotools-20 读取、写入shape文件
  7. echarts仅作个人临时笔记 stack属性防止堆叠颜色 symbol: ‘none‘取消折点圆圈
  8. win10安全中心设置不扫描某个文件夹的方法
  9. matlab上机操作心得,Matlab上机实习实习报告
  10. 微信小程序上传体积压缩包过大分包操作