BottomDialog

日常需求中通常都会有这样的需求,点击按钮会从底部弹出一个对话框,选择操作。例如分享或者更换头像弹出对话框。

因此抽空将此功能封装成库,方便以后引用。

ScreenShot

Import

Maven

Step 1. Add the JitPack repository to your build file

<repositories><repository><id>jitpack.io</id><url>https://jitpack.io</url></repository>
</repositories>

Step 2. Add the dependency

<dependency><groupId>com.github.SmartCyl</groupId><artifactId>BottomDialog</artifactId><version>1.0.4</version>
</dependency>

Or Gradle

Step 1. Add the JitPack repository to your build file

Add it in your root build.gradle at the end of repositories:

allprojects {repositories {...maven { url 'https://jitpack.io' }}
}

Step 2. Add the dependency

dependencies {compile 'com.github.SmartCyl:BottomDialog:1.0.4'
}

Usage

当不需要图片时,Item的构造器第一个参数传0 :new Item(0,”name”)

1、使用前3张图中类似的效果直接使用自带的layout文件即可。

new SmartDialog().init(context).items(List<Item>).display();

默认布局 APIs

方法 说明 默认值
backgroundRes 设置背景资源,如圆角(backgroundResEnable为true时生效) R.drawable.shape_round_corner
backgroundResEnable 是否启用设置背景资源 true
onItemClick ReciclerView的单击监听 -
onItemLongClick ReciclerView的长按监听 -
title 设置标题 标题
titleVisible 是否显示标题 true
titleGravity 标题显示位置 Gravity.CENTER
titleColor 标题颜色 727272
titleSize 标题字体大小 16
cancelVisible 是否显示取消按钮 true
cancel 隐藏Dialog -
itemOrientation RecyclerView子项布局方式(垂直[图二]/水平[图一]) LinearLayout.VERTICAL
recyclerViewOrientation RecyclerView排布方式(垂直/Grid[图二]) BaseSmartDialog.ORIENTATION_VERTICAL
spanCount 列数(recyclerViewOrientation为GRID时生效) 3
adapter 设置适配器 SmartAdapter

2、使用自定义布局(如图四)

new SmartDialog().init(context).layoutRes(layout).display();

共用 APIs

方法 说明 默认值
items 设置数据源 -
display 显示Dialog -
layoutRes 设置自定义布局 -
dialogHeight 设置Dialog高度 包裹内容
dialogWidth 设置Dialog宽度 屏幕宽度(若宽度不铺满屏幕,调用padding(0)即可)
padding(padding) 设置内边距 30
padding(l,t,r,b) 设置内边距 30
gravity Dialog的位置 Gravity.BOTTOM
animEnable 是否启用Dialog从底部弹出的动画 true
animDuration Dialog从底部弹出动画持续时间 500ms
cancelableOutside 点击Dialog外部是否可隐藏Dialog true
onOutsideClick 点击Dialog外部区域事件监听(用于点击外部后判断做什么操作,设置后点击外部Dialog不会自动消失,需要调用dialog.cancel()) -
dimAmount 设置阴影部分的灰暗度 0.5F
alpha 设置Dialog透明度 1F
bindViewListener 绑定视图回调(可用于自定义layout的点击事件监听) -

示例(默认布局)

new SmartDialog().init(this).items(items) // 设置数据源.title("标题").onItemClick(new OnItemClickListener() {@Overridepublic void onItemClick(int position, Item item) {// 单击回调}}).onItemLongClick(new OnItemLongCli() {@Overridepublic void onItemLongClick(int position, Item item){// 长按回调}}).onOutsideClick(new OutsideClickListener() {@Overridepublic void outsideClick(boolean isOutside, BaseSmartDialog dialog) {dialog.cancle(); // 使对话框消失// 点击外部区域监听                 }}).backgroundResEnable(true).animEnable(false).cancelVisible(true).titleVisible(true).cancelableOutside(true).titleGravity(Gravity.CENTER).gravity(Gravity.CENTER).titleColor(R.color.colorAccent).titleSize(20).padding(20).itemOrientation(LinearLayout.VERTICAL).animDuration(400).display();

示例(自定义布局)

new SmartDialog().init(this).items(items) // 设置数据源.onOutsideClick(new OutsideClickListener() {@Overridepublic void outsideClick(boolean isOutside, BaseSmartDialog dialog) {dialog.cancle(); // 使对话框消失// 点击外部区域监听                 }})// 为自定义布局的子控件设监听.bindViewListener(new BindViewListener() {@Overridepublic void bind(View dialogView, final BaseSmartDialog dialog) {// xxx为自定义layout的iddialogView.findViewById(R.id.xxx).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {// do somethingdialog.cancel();}});}});.animEnable(false).cancelableOutside(true).gravity(Gravity.CENTER).padding(20).animDuration(400).display();

github地址

底部弹出框BottomDialog相关推荐

  1. flutter实现底部弹出框以及特色功能

    今天项目中要实现底部弹出框并且实现圆角功能,先来预览一下 可以看出实现的公告有 底部圆角,以及朋友圈,微信转发等 实现逻辑我直接代码列出 定义 List<String> nameItems ...

  2. html自定义js程序,JS中微信小程序自定义底部弹出框

    实现微信小程序底部弹出框效果,代码分为html,css和js两部分,具体代码详情大家参考下本文. html CSS .commodity_screen { width: 100%; height: 1 ...

  3. android的底部弹出框炫酷的样式,Android自定义底部弹出框ButtomDialog

    本文实例为大家分享了Android自定义底部弹出框的具体代码,供大家参考,具体内容如下 先看看效果和你要的是否一样 一 .先来配置自定义控件需要的资源 1.在res文件夹下创建一个anim文件夹并创建 ...

  4. 微信小程序商品详情页底部弹出框(点击加入购物车或立即购买弹出)

    项目实现效果如图 项目效果实现思路: wxml页面设计好底部栏<加入购物车,立即购买> 绑定点击触发弹出层函数 写好弹出窗效果 写好原始页面暗化效果 项目实现代码 1.wxml代码 (其中 ...

  5. android实现底部弹出框与软键盘冲突(全面屏虚拟键适配)

    普通的底部弹出框大家都可以很熟练的使用了,无非是一个diaolog的事情,但是当dialog中含有输入框之后,软键盘与dialog的冲突可以说是十分坑了...更别说加上底部虚拟键了,这么一个小功能磨得 ...

  6. 仿抖音评论底部弹出框(列表框+发表框)

    BottomSheetDialogFragment高仿抖音评论底部弹出框 先看效果图: 这个弹窗的效果是使用BottomSheetDialogFragment做的,第一个弹出的对话框为CommentL ...

  7. 【微信小程序封装底部弹出框二】

    [微信小程序封装底部弹出框二] <!--index.wxml--> <view><button style="margin-top: 300px;" ...

  8. 微信小程序 -- 自定义底部弹出框(带动画--滑入滑出)

    实现这么一个功能,点击选项进行选择,效果是从底部弹出选项框(带滑出动画),选择了某项或者点击其他地方,隐藏(带滑出动画).效果图如下: 可适用于任何场景,如普通选项(如图)或者类似商城小程序选择商品属 ...

  9. Swift4.0 实现底部弹出框

    网上找了些例子,但是并不能满足我的要求,下面我将网上的荔枝与自己的改进分享给大家 原理: 通过swift4的present 结合SnapKit进行布局 看效果图: 1.包含自定义view: 2:显示L ...

  10. uni-app 封装底部弹出框

    一个很简单的代替 select 的组件: 这里只实现了弹出.确认时返回选中的选中的对象: 没有实现弹出时显示为第几个,有需要可以自己加: 位置.弹出动画.样式都可以根据自己的需要进行修改: 有问题或者 ...

最新文章

  1. 我的HTTP/3学习笔记
  2. 2019第十届蓝桥杯C/C++ A组省赛 —— 第二题: 数列求值
  3. linux下nano修改并保存
  4. PHP鼠标滑过变色命令,WordPress鼠标悬停变色的修改方法
  5. 陷阱计算机音乐谱大全,陷阱 原版C调-王北车-和弦谱-《弹吧》官网tan8.com-和弦谱大全,学吉他,秀吉他...
  6. 案例:演示exception对象的使用
  7. Altium Designer实现原理图到PCB板的转换
  8. STM32工作笔记0069---汉字显示实验
  9. mysql mysqldump触发器备份_MySQL常用的备份工具之mysqldump
  10. 使用ApexSQL Log 分析数据库在线日志及数据库备份
  11. 企业发展如何启动云的力量
  12. Tomcat详解(四)——Tomcat配置详解
  13. 垂直门户网站与SEO
  14. 用TMS320c54x汇编语言求方差,TMS320C54x的指令.pdf
  15. maxcms整合html5播放器,【整合】马克斯cms4.0以上版本整合ckplayer6.8[支持PC+手机WAP]ckplayerX...
  16. python 实现数据结构八种内部排序算法
  17. 索尼A7R IV和索尼A7 III的区别
  18. C# 2012QQ空间最新加密方式
  19. Pytorch 创建Tensor
  20. nms修改为soft nms

热门文章

  1. access如何保存小数点后_你知道PDF文件旋转页面后如何保存吗?
  2. linux怎么看用的哪个网卡驱动,linux下如何查看网卡驱动版本信息?
  3. 第6节 Kali Linux系统压缩与解压缩文件
  4. Arcgis中修改属性字段名
  5. 计算机二级word奇偶页眉页脚,Word怎样设置奇偶页眉和页码图解
  6. NOIP2017提高组题解(待填坑)
  7. 60万餐厅数据为你画出全国美食地图(附技术讲解)
  8. 深入浅出node.js第9章玩转进程摘录
  9. 用python完成淘宝毫秒级抢单,助你秒杀淘宝折扣商品
  10. 配置cfree 5 支持C++11