首页 > 编程语言 >视频直播源码,三段式(抽屉式)底部弹窗BottomSheet

视频直播源码,三段式(抽屉式)底部弹窗BottomSheet

时间:2023-07-03 14:23:23浏览次数:46  
标签:layout context app STATE 源码 BottomSheetBehavior 抽屉式 BottomSheet android

视频直播源码,三段式(抽屉式)底部弹窗BottomSheet

自定义View

继承CoordinatorLayout

 

 


/**
 * Created by zGui on 2022/7/11.
 * 三段式底部弹窗
 */
class ThreeBottomSheet : CoordinatorLayout {
    private var mBinding: IncludeBottomSheetBinding
    constructor(context: Context) : this(context, null)
    constructor(context: Context, attributeSet: AttributeSet?) : this(context, attributeSet, 0)
    constructor(context: Context, attributeSet: AttributeSet?, defStyle: Int) : super(
        context,
        attributeSet,
        defStyle
    ) {
        mBinding = DataBindingUtil.inflate(
            LayoutInflater.from(context),
            R.layout.include_bottom_sheet, this, true
        )
        val bottomSheetBehavior: BottomSheetBehavior<View> = BottomSheetBehavior.from<View>(mBinding.bottomSheet)
        //上拉框状态监听
        bottomSheetBehavior.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
            //监听状态改变
            override fun onStateChanged(bottomSheet: View, newState: Int) {
//                when (newState) {
//                    BottomSheetBehavior.STATE_DRAGGING -> "STATE_DRAGGING" //过渡状态此时用户正在向上或者向下拖动bottom sheet
//                    BottomSheetBehavior.STATE_SETTLING -> "STATE_SETTLING" // 视图从脱离手指自由滑动到最终停下的这一小段时间
//                    BottomSheetBehavior.STATE_EXPANDED -> "STATE_EXPANDED" //处于完全展开的状态
//                    BottomSheetBehavior.STATE_HALF_EXPANDED -> "STATE_EXPANDED" //处于中间的状态
//                    BottomSheetBehavior.STATE_COLLAPSED -> "STATE_COLLAPSED" //默认的折叠状态
//                    BottomSheetBehavior.STATE_HIDDEN -> "STATE_HIDDEN" //下滑动完全隐藏 bottom sheet
//                }
            }
            //监听滑动的过程
            override fun onSlide(@NonNull bottomSheet: View, slideOffset: Float) {
            }
        })
        bottomSheetBehavior.state = BottomSheetBehavior.STATE_HALF_EXPANDED
    }
}
 

布局文件

 

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools">
    <data>
        <import type="android.view.View"/>
    </data>
    <LinearLayout
        android:id="@+id/bottom_sheet"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:behavior_hideable="false"
        app:behavior_peekHeight="200dp"
        app:behavior_fitToContents="false"
        app:behavior_halfExpandedRatio="0.55"
        app:layout_behavior="@string/bottom_sheet_behavior">
...
<androidx.recyclerview.widget.RecyclerView
                android:id="@+id/rv"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="@dimen/dp_64"
                />
               
    </LinearLayout>
</layout>

 

 以上就是 视频直播源码,三段式(抽屉式)底部弹窗BottomSheet,更多内容欢迎关注之后的文章

 

标签:layout,context,app,STATE,源码,BottomSheetBehavior,抽屉式,BottomSheet,android
From: https://www.cnblogs.com/yunbaomengnan/p/17522770.html

相关文章

  • 手机直播源码,设置透明背景(去掉蒙层)状态栏颜色不改变
    手机直播源码,设置透明背景(去掉蒙层)状态栏颜色不改变Dialog设置透明背景(去掉蒙层) //背景全透明window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))window!!.setDimAmount(0f)   ​     Dialog弹出时状态栏颜色不改变 //弹出时状态栏颜色不......
  • 网页直播源码知识分享:“直播卫士”,查杀病毒功能在此!
     不知道大家还记不记得当年的一个网络重大事件,一只可爱的熊猫拿着香席卷了众多用户的电脑,被这只熊猫席卷的电脑无一不出现系统崩溃、瘫痪的情况,而这只熊猫就是当年造成重大影响的一款电脑病毒:“熊猫烧香”。经过网络的发展,对于病毒的“侵袭”,各大厂商也发明了许多的查杀病毒软件......
  • LinuxDNS分析从入门到放弃(记一次有趣的dns问题排查记录,ping 源码分析,getaddrinfo源码
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。环境说明  ubuntu18.04前言  我们这里有一块嵌入式板卡,当我们通过PING测试内网IP时,发现外网IP访问正常,但是测试域名访问一直报unknownhost。一般来说,在ubun......
  • Common BeanUtils组件的使用(源码)
    CommonBeanUtils组件方便了对JavaBean的使用。其中的一些类方法,使我们使用JavaBean得到了便利。 使用CommonBeanUtils组件需要三个Jar包,分别是commons-beanutils-1.8.0-BETA.jarcommons-logging-1.1.1.jarcommons-logging-api-1.1.1.jar 可从官网下载,不过为了方便,我把三个包传......
  • linux命令源码下载【转】
    一般来说,不同的命令可能隶属于不同的软件包,这样就没有一个地方会有所有命令的源代码。(命令的个数也会与你所安装的软件包有关)但是,一些常用的命令,例如basenamecatchgrpchmodchownchrootcksumcommcpcsplitcutdatedddfdirnameduechoenvexpandexprfactorfalsefm......
  • (六)Spring源码解析:Spring AOP源码解析
    〇、AOP概念Aspect:切面给业务方法增加到功能,切面泛指交叉业务逻辑。上例中的事务处理、日志处理就可以理解为切面。常用的切面是通知(Advice)。实际就是对主业务逻辑的一种增强。Pointcut:切入点切入点指声明的一个或多个连接点的集合,通过切入点指定一组方法。被标记为final......
  • A004 《天狗食月》编程 源码
    一、课程介绍本节课将学习Python中的for循环,并应用画笔后退和画圆的知识,最终绘制出月食过程。二、重难点解析for循环我们在编程时,有些代码和逻辑是重复的,这个时候可以考虑使用for循环,减少重复的代码。for循环的基本格式与缩进基本格式:foriinrange(3):语句1语句2......
  • Sentinel源码分析
    Sentinel的基本概念Sentinel实现限流、隔离、降级、熔断等功能,本质要做的就是两件事情:统计数据:统计某个资源的访问数据(QPS、RT等信息)规则判断:判断限流规则、隔离规则、降级规则、熔断规则是否满足这里的资源就是希望被Sentinel保护的业务,例如项目中定义的controller方法就是......
  • 基于物联网、区块链、RSA加密验证技术实现的防伪溯源系统源码
    一物一码防伪溯源系统能准确获取产品生产经营各个环节的真实信息,利用物联网、云计算、区块链、人工智能、5G等先进技术,结合特有的码码关联和RSA加密验证技术,建立区块链的“身份证”,针对产品种植到销售各环节的质量安全数据进行及时采集上传,数据具有不可逆,不可篡改等特点,实现产品溯......
  • 碰撞测试(附源码)
    这里没有办法展示动态效果,具体动态效果请复制到浏览器并在浏览器控制台上查看具体效果:CSS部分:<style>*{margin:0;padding:0;}div{position:absolute;top:0;left:0;......