android 底部弹框 BottomSheetDialog 的使用
先简单的说下普通弹框使用 步骤
首先项目需要添加design 库
简单的使用和dialog 一样 如下
BottomSheetDialog sheelt = new BottomSheetDialog(BottomSheeltActvity.this);View contentView = LayoutInflater.from(BottomSheeltActvity.this).inflate(R.layout.bottom__pop_item, null);sheelt.setContentView(contentView);sheelt.show();
这样就弹框了,简单吧
下面给其添加一个监听事件
public class BottomSheeltActvity extends AppCompatActivity {BottomSheetDialog sheelt;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.bottom_sheet_activity_layout);findViewById(R.id.txt).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {sheelt = new BottomSheetDialog(BottomSheeltActvity.this);View contentView = LayoutInflater.from(BottomSheeltActvity.this).inflate(R.layout.bottom__pop_item, null);sheelt.setContentView(contentView);sheelt.show();//设置背景为透明sheelt.getWindow().findViewById(R.id.design_bottom_sheet).setBackgroundResource(android.R.color.transparent);//设置id 的监听TextView photo = contentView.findViewById(R.id.photo);photo.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(BottomSheeltActvity.this, "点击了", Toast.LENGTH_SHORT).show();sheelt.dismiss();//消失}});}});}
}
下面说下其他的注意点
1 BottomSheetDialog 默认点击弹框之外的区域 弹框消失,如果想让其不消失可以设置如下
sheelt.setCanceledOnTouchOutside(false);
2 BottomSheetDialog 点击消失的方法
sheelt.dismiss();
3 设置背景透明
sheelt.getWindow().findViewById(R.id.design_bottom_sheet).setBackgroundResource(android.R.color.transparent);
可能有人会问这个id那来的,这个是系统自带的,直接赋值过去使用即可
4 弹框布局上面2个角变为圆角
这个可以用shape
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"><cornersandroid:topLeftRadius="10dp"android:topRightRadius="10dp" /><solid android:color="#ffffff" />
</shape>
但是需要设置弹框背景为透明 否则 显示的效果 被默认的白色背景挡着可也看不到效果
5 弹框 分模块 有间距的那那种
这个同样布局设置距离即可,但是需要设置背景为透明,然后在吧自己写的弹框的区域设置为自己想要的颜色即可。。
6 修改BottomSheetDialog 的默认高度
这里说下自己在项目中什么地方用到了这个修改默认高度
假如 弹框里面有一个控件点击 弹框增提布局增加1/3 的高度,再次点击 这个高度消失 ,如果弹框整体布局没有高出默认高度
没有问题 ,如果弹框布局高于默认高度 这样弹框之后它它不会增加而是高度一致,变成了滑动了
如果使用popwindow 做这样的弹框 你会发现效果非常的不好看,有兴趣的可以自己试试 ,这里只给出修改默认高度的
方法
BottomSheetBehavior sheetBehavior = BottomSheetBehavior.from((View) contentView.getParent()); sheetBehavior.setPeekHeight(1500);//修改默认的高度
到这里基本知识就讲完了,希望能帮助到您。
android 底部弹框 BottomSheetDialog 的使用相关推荐
- android 仿ios 底部弹出,项目需求讨论-仿ios底部弹框实现及分析
hi,在项目开发中,有时候需要仿照ios的底部弹框做效果,比如我们在iPhone上面关闭定位的时候,就会弹出ios特有的底部弹框: 屏幕快照 2017-10-09 08.20.30 PM.png 弹框 ...
- Android之底部弹框
文章链接: Android之底部弹窗 知识点: 1.dialog的简单使用: 2.自定义底部弹框: 3.新名词记录 { 5.0 转场动画 } 底部弹框:就是从手机屏幕底边位置弹出来,最常见的就是弹框里 ...
- java安卓弹框样式_Android 实现抖音头像底部弹框效果的实例代码
布局文件 activity_test.xml android:layout_width="match_parent" android:layout_height="mat ...
- flutter 分割线_Flutter 底部弹框 showModalBottomSheet 使用Demo
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. Flutter是谷歌推出的最新的移动开发框架. [x1]微信公众号的每日提醒 随时随记 每日积累 随心而过 文章底部扫码关注 [x2] ...
- Flutter 底部弹框 showModalBottomSheet 使用Demo
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. Flutter是谷歌推出的最新的移动开发框架. [x1]微信公众号的每日提醒 随时随记 每日积累 随心而过 文章底部扫码关注 [x2] ...
- 微信小程序之底部弹框预约插件
代码地址如下: http://www.demodashi.com/demo/13982.html 一.前期准备工作: 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq. ...
- 小程序头像和昵称填写能力用底部弹框界面实现
最近,微信小程序又更新了文档,关于获取头像和昵称需要进行适配. https://developers.weixin.qq.com/community/develop/doc/00022c683e8a8 ...
- Axure如何制作app底部弹框,固定在底部
相信大家在日常的app原型绘制中,经常会遇到做底部弹框的功能,如果底部弹框会弹出不同的操作的话,这个时候大家就会使用动态面板进行原型制作,但是此时会存在一个问题,如果动态面板在不同的状态下高度不一样的 ...
- android弹框 简书,Android -自定义弹框
前言 开发中避免不了自定义一些弹框的使用,经常开发觉得麻烦,就封装了一些常用的弹框,经供参考. Dialog-Master Dialog 各种自定义黑色主题,适用于黑色主题的APP 白色的需要修改背景 ...
最新文章
- select子句顺序
- 在MySQL中保存Java对象_java对象储存到数据库
- f5 ppt图标_PPT制作学习 (PPT技巧干货,拿走不谢)
- 无法打开虚拟机,获取该虚拟机的所有权失败。 主机上的某个应用程序正在使用该虚拟机。
- 带着canvas去流浪系列之七 绘制水球图
- nodejs对文件进行分页
- 如何卸载mysql5.6.28_如何完全删除MySQL以进行全新安装
- ubuntu20.04 下查看(改变)本地端口开放情况,开启和关闭防火墙
- 从日志中截取某个时间段的日志分析
- 福建农林大学统计学和计算机,福建农林大学特色专业介绍_统计学_专业课程介绍_专业排名_就业方向...
- VSCODE 远程编译调试ARM开发板
- 【Angular/TS】一文弄懂安全导航操作符(?.)、非空断言操作符/可选链(?.) 、空值合并运算符
- java截图+中文图片识别
- 用matlab怎么仿真升降压电路,(最新整理)升降压斩波电路matlab仿真
- VB——消费记录及查询系统。
- matlab实现RGB图转为BAYER图像以及Bayer格式对应的txt
- 【bug】vue.runtime.esm.js?2b0e:619 [Vue warn]: Failed to mount component: template or render function
- 透彻分析微信公众平台三大矛盾
- [本校测试] 魔王的消失Day2——By Hineven T3葬诗 提交答案题(爬山算法)
- 网新恒天php,网新恒天,为德邦快递插上数字化翅膀