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

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

自定义View

继承CoordinatorLayout

 

 

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

布局文件

 

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

 

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

 

posted @   云豹科技-苏凌霄  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示