安卓behavior详解1--系统behavior的简单应用

一.简介
的中文翻译是”行为”的意思.
是新出的库里新增的布局概念 。只有是的直接子View才有意义 。可以为任何View添加一个 。
里面的是一个非常强大的控件,它接管了child组件之间的交互 。让你滑动交互使用更加方便简单,效果也更加强大,不需要像以前那样自己处理一坨什么乱七八槽的滑动,事件传递之类的处理了 。
是一系列回调 。让你有机会以非侵入的为View添加动态的依赖布局,和处理父布局()滑动手势的机会 。如果我们想实现控件之间任意的交互效果,完全可以通过自定义的方式达到 。
【安卓behavior详解1--系统behavior的简单应用】在学习自定义之前我们先看一看官方内置的

安卓behavior详解1--系统behavior的简单应用

文章插图
二.
实现的效果就是一个布局底部弹出,类似于饿了么查看购物车的效果,这种效果我们可以有很多种方式实现,使用你会发现简直只需要一行代码.
安卓behavior详解1--系统behavior的简单应用

文章插图
1.页面布局

属性说明
安卓behavior详解1--系统behavior的简单应用

文章插图
//折叠的高度app:behavior_peekHeight="10dp"setPeekHeight//是否可以隐藏app:behavior_hideable="true"setHideable//是否跳过折叠状态app:behavior_skipCollapsed="true"setSkipCollapsed
2.代码实现
只需要获取到这个
bottomSheetBehavior = BottomSheetBehavior.from((View)rlBottom);
然后点击的时候按钮时候控制其隐藏和出现即可
case R.id.bt1:if (bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_COLLAPSED) {bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);} else {bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);}break;
状态说明:
3.状态监听
我们可以通过监听状态的改变做一些自定义的操作,比如这样.
安卓behavior详解1--系统behavior的简单应用

文章插图
bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {@Overridepublic void onStateChanged(@NonNull View bottomSheet, int newState) {///这里是bottomSheet 状态的改变,根据slideOffset可以做一些动画}@Overridepublic void onSlide(@NonNull View bottomSheet, float slideOffset) {//这里是拖拽中的回调,根据slideOffset可以做一些动画Log.e("king",slideOffset+"");if(slideOffset>0){if(slideOffset>0.5)slideOffset=0.5f;ViewGroup.LayoutParams para1;para1 = bottomSheet.getLayoutParams();para1.width = (int) (rlBottomWidth*(0.5+slideOffset));bottomSheet.setLayoutParams(para1);}}});