视频直播源码,三段式(抽屉式)底部弹窗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,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现