BottomSheetDialog嵌套NestedScrollView+RecyclerView,导致内部无法上下滑动,设置全屏和圆角问题

现在项目一直在用底部弹出框,之前一直用的是系统的dialog,然后设置成底部的属性,但是动画什么的不是很好,所以用了BottomSheetDialog这个系统的控件,但是坑比较多,这里记录一下。

第一个问题嵌套NestedScrollView+RecyclerView,导致内部无法上下滑动:其实这个就是没办法设置全屏导致的,

//拿到系统的 bottom_sheet
View view = sheetDialog.findViewById(R.id.design_bottom_sheet);
//设置view高度
view.getLayoutParams().height = getResources().getDisplayMetrics().heightPixels - 200;
//获取behavior
BottomSheetBehavior<View> behavior = BottomSheetBehavior.from(view);
//设置弹出高度
//behavior.setPeekHeight(500);
//设置展开状态
behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
//设置view高度
view.getLayoutParams().height = getResources().getDisplayMetrics().heightPixels - 200;这句话就是设置这个dialog全屏弹出,至于高度多少,你们可以自己设置

第二个问题:圆角设置

这个空间直接在xml里面设置背景是不行的,因为是系统空间,必须设置style才行

 

<!--实现BottomSheetDialog圆角效果-->
<style name="BottomSheetDialog" parent="Theme.Design.Light.BottomSheetDialog">
    <item name="bottomSheetStyle">@style/bottomSheetStyleWrapper</item>
</style>
<style name="bottomSheetStyleWrapper" parent="Widget.Design.BottomSheet.Modal">
    <item name="android:background">@drawable/shape_top_10_white</item>
</style>

然后直接在构造方法传进去就行了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值