Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >给BottomSheetDialog 设置默认高度,全屏显示

给BottomSheetDialog 设置默认高度,全屏显示

原创
作者头像
用户5584592
修改于 2021-05-31 02:17:45
修改于 2021-05-31 02:17:45
6.2K00
代码可运行
举报
文章被收录于专栏:android代码android代码
运行总次数:0
代码可运行

翻看了一下 BottomSheetBehavior 的源码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	if (this.peekHeightAuto) {
            if (this.peekHeightMin == 0) {
                this.peekHeightMin = parent.getResources().getDimensionPixelSize(dimen.design_bottom_sheet_peek_height_min);
            }

            this.lastPeekHeight = Math.max(this.peekHeightMin, this.parentHeight - parent.getWidth() * 9 / 16);
        } else {
            this.lastPeekHeight = this.peekHeight;
        }
代码语言:java
AI代码解释
复制
private View wrapInBottomSheet(int layoutResId, View view, LayoutParams params) {
        FrameLayout container = (FrameLayout)View.inflate(this.getContext(), layout.design_bottom_sheet_dialog, (ViewGroup)null);
        CoordinatorLayout coordinator = (CoordinatorLayout)container.findViewById(id.coordinator);
        if (layoutResId != 0 && view == null) {
            view = this.getLayoutInflater().inflate(layoutResId, coordinator, false);
        }

        FrameLayout bottomSheet = (FrameLayout)coordinator.findViewById(id.design_bottom_sheet);
        this.behavior = BottomSheetBehavior.from(bottomSheet);
        this.behavior.setBottomSheetCallback(this.bottomSheetCallback);
        this.behavior.setHideable(this.cancelable);
        if (params == null) {
            bottomSheet.addView(view);
        } else {
            bottomSheet.addView(view, params);
        }
	............
    }

通过源码发现,拿到BottomSheetBehavior就可以很方便设置peekHight,设置state

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
BottomSheetBehavior mBehavior = BottomSheetBehavior.from((View)getView().getParent());
mBehavior.setPeekHeight(1000); //设置默认高度,折叠态

//设置默认全屏
mBehavior.setState(BottomSheetBehavior.STATE_EXPANDED) //设置为展开状态
mBehavior.setKipCollapsed(true)  //设置下滑跳过折叠态

设置默认全屏

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
给layout xml中设置 minHeight   (大于屏幕高度)
BottomSheetBehavior mBehavior = BottomSheetBehavior.from((View)getView().getParent());
mBehavior.skipCollapsed = true
mBehavior.state=BottomSheetBehavior.STATE_EXPANDED;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
BottomSheetDialog 使用详解,设置圆角、固定高度、默认全屏等
MD风格的底部弹窗,比自定义dialog或popupwindow使用更简单,功能也更强大。
yechaoa
2022/06/10
4.5K0
BottomSheetDialog 使用详解,设置圆角、固定高度、默认全屏等
Android材料设计之FloatingActionButton+Snackbar+SheetX3
本文把几个小东西讲一下 FloatingActionButton:浮动按钮 Snackbar:底弹框 BottomSheet:底抽屉 BottomSheetDialog :抽屉对话框 Bot
张风捷特烈
2018/12/19
1K0
Android开发笔记(一百三十四)协调布局CoordinatorLayout
Android自5.0之后对UI做了较大的提升,一个重大的改进是推出了MaterialDesign库,而该库的基础即为协调布局CoordinatorLayout,几乎所有的design控件都依赖于该布局。协调布局的含义,指的是内部控件互相之前的动作关联,比如在A视图的位置发生变化之时,B视图的位置也按照某种规则来变化,仿佛弹钢琴有了协奏曲一般。 使用CoordinatorLayout时,要注意以下几点: 1、导入design库; 2、根布局采用android.support.design.widget.CoordinatorLayout; 3、CoordinatorLayout节点要添加命名空间声明xmlns:app="http://schemas.android.com/apk/res-auto"; CoordinatorLayout继承自ViewGroup,实现效果类似于RelativeLayout,若要指定子视图在整个页面中的位置,有以下几个办法: 1、使用layout_gravity属性,指定子视图在CoordinatorLayout内部的对齐方式。 2、使用app:layout_anchor和app:layout_anchorGravity属性,指定子视图相对于其它子视图的位置。其中app:layout_anchor表示当前以哪个视图做为参照物,app:layout_anchorGravity表示本视图相对于参照物的对齐方式。 3、使用app:layout_behavior属性,指定子视图相对于其它视图的行为,当对方的位置发生变化时,本视图的位置也要随之相应变化。 下面是使用anchor方式定义子视图方位的截图,其中红色方块位于整个页面的右上方:
aqi00
2019/01/18
2.3K0
BottomSheet底部动作条使用
底部动作条 底部动作条(Bottom Sheets)是一个从屏幕底部边缘向上滑出的一个面板,使用这种方式向用户呈现一组功能。底部动作条呈现了简单、清晰、无需额外解释的一组操作。 使用环境 底部动作条(Bottom Sheets)特别适合有三个或者三个以上的操作需要提供给用户选择、并且不需要对操作有额外解释的情景。如果只有两个或者更少的操作,或者需要详加描述的,可以考虑使用菜单(Menu)或者对话框替代。 底部动作条(Bottom Sheets)可以是列表样式的也可以是宫格样式的。宫格布局可以增加视觉的清晰
xiangzhihong
2018/02/05
2K0
BottomSheet底部动作条使用
建站四部曲之移动端篇(Android+上线)
有关材料设计,我写过一个系列:详见--Android材料设计Material Design 开篇前言
张风捷特烈
2018/12/27
8100
建站四部曲之移动端篇(Android+上线)
Android常用对话框大全——Dialog「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137960.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/23
4.5K0
Android常用对话框大全——Dialog「建议收藏」
轻量级控件SnackBar使用以及源码分析
本篇博客将会给大家带来一个轻量级控件SnackBar,为什么要讲SnackBar?Snackbar:的提出实际上是界于Toast和Dialog的中间产物。因为Toast与Dialog各有一定的不足,使用Toast的时候, 用户无法交互;使用Dialog:用户可以交互,但是体验会打折扣,会阻断用户的连贯性操作;但是使用Snackbar既可以做到轻量级的用户提醒效果,又可以有交互的功能,本博客将会从SnackBar的使用和源码分析两个方面进行介绍。
老马的编程之旅
2022/06/22
1.5K0
轻量级控件SnackBar使用以及源码分析
建站四部曲之移动端篇(Android+上线)
本系列分为四篇: 建站四部曲之后端接口篇(SpringBoot+上线) 建站四部曲之Python数据爬虫篇(selenium) 建站四部曲之前端显示篇(React+上线) 建站四部曲之移动端篇(Android+上线) ---- 零、前言 本系列为了总结一下手上的知识,致敬我的2018 本篇的重点在于:后端数据在移动端的展现 本篇总结的技术点: 材料设计串烧、Retrofit+RxJava访问请求、MVP模式的思考、App的打包 将App上传到服务器,提供下载地址、 ---- 一、材料设计的综
张风捷特烈
2018/12/26
6470
聊聊Android嵌套滑动
最近工作中遇到了需求是使用 Bottom-Sheet 交互的弹窗,使用了 design 包里面的 CoordinatorLayout 和 BottomSheetBehavior ,因为弹窗承载的页面相对来说还是比较复杂的页面,所以也踩了好几个坑。之前UI交互类的东西接触的也比较少,于是把Android里面嵌套滑动相关的内容也过了一遍,在这里做一些分享。 在嵌套滑动控件的场景中,可以在Android的事件分发机制本身做一些处理,外部拦截或者内部消化触摸事件。但是这样的解决方法有几个弊端:
烧麦程
2022/05/10
1.4K0
聊聊Android嵌套滑动
Activity中setContentView过程
可以看见上面方法主要作用就是根据窗口的风格修饰类型为该窗口选择不同的窗口根布局文件。mDecor做为根视图将该窗口根布局添加进去,然后获取id为content的FrameLayout返回给mContentParent对象。所以installDecor方法实质就是产生mDecor和mContentParent对象。另一方面如果要设置窗口风格,必须放在setContentView的前面:
全栈程序员站长
2022/09/13
3070
听说谷歌Baba更新了 Material UI ...
Material Design,是谷歌在14年的IO大会上提出的一种新的理念,也被称为新的设计语言(也被称为“原材料设计”),称它为设计语言不为过,但是实际上,这仅仅是谷歌提倡的一种新的设计风格、理念以及设计基本原则。
贺biubiu
2019/06/10
3.3K0
Android--Snackbar基本使用以及源码分析
Snackbar是谷歌集成的design包下的一个用于消息提示的控件,介于Dialog和Toast之间,结合了两者的优点,又解决了Dialog强提示和Toast无法交互的缺点,使用方法也很简单,首先我们需要引入design包,然后在代码中调用 public void click(View view) { Snackbar.make(view, "这是一个提示", Snackbar.LENGTH_SHORT).show(); } 其中第二个参数是提示内容,第三个参数是消失的时间
aruba
2020/07/02
1.4K0
针对 CoordinatorLayout 及 Behavior 的一次细节较真
我一直对 Material Design 很感兴趣,每次在官网上阅读它的相关文档时,我总会有更进一步的体会。当然,Material Design 并不是仅仅针对 Android 而言的,它其实是一套普遍性的设计规范。而对于 Android 开发人员而言,我们涉及的往往是它的实现。也就是一个个个性鲜明的类。比如 RecyclerView 、CardView、Palette 等等。并且为了让开发者更轻松地开发出符合 Material Design 设计规范的界面,Google 开发人员直接提供了一个兼容包,它就是 Android Support Design Library。
Frank909
2019/01/14
1.3K0
用 CoordinatorLayout 处理滚动
原文地址:Handling Scrolls with CoordinatorLayout 原文作者:CODEPATH 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:Feximin 总览 CoordinatorLayout 扩展了完成 Google's Material Design 中的多种滚动效果的能力。目前,此框架提供了几种不需要写任何自定义动画代码就可以(使动画)工作的方式。这些效果包括: 上下滑动 Floating Action Button 以给 Sn
Android 开发者
2018/05/31
5.1K0
android-懒加载fragment
用于viewpager+fragment布局 import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.FrameLayout; /** * <h1>懒加载Fragment</h1> 只有
tea9
2022/07/16
3730
实现一个网易云音乐的 BottomSheetDialog
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguanh/ GitHub : https://github.com/af913337456/ 腾讯云专栏: https://cloud.tencent.com/developer/user/1148436/activities ---- Github 开源地址 目录 前序 直观对比下 g
林冠宏-指尖下的幽灵
2018/04/13
2.2K0
实现一个网易云音乐的 BottomSheetDialog
相关推荐
BottomSheetDialog 使用详解,设置圆角、固定高度、默认全屏等
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验