Android使用CoordinatorLayout实现底部弹出菜单
本文实例为大家分享了使用CoordinatorLayout实现底部弹出菜单的具体代码,供大家参考,具体内容如下
第一步:添加依赖:
compile"com.android.support:design:${project.properties.get("support")}"
第二步:布局引用:
//页面布局
第三步:使用:
//找到BottomSheetBehavior BottomSheetBehaviorbehavior=BottomSheetBehavior.from(findViewById(R.id.au_bottom_sheet)); //设置弹出高度 behavior.setPeekHeight(WindowHeight/2); //默认隐藏 behavior.setState(BottomSheetBehavior.STATE_HIDDEN); //添加消失监听 behavior.setBottomSheetCallback(bottomSheetCallback);
添加菜单消失监听:
//状态监听,通过这个监听菜单是否消失 privateBottomSheetBehavior.BottomSheetCallbackbottomSheetCallback=newBottomSheetBehavior.BottomSheetCallback(){ @Override publicvoidonStateChanged(@NonNullViewbottomSheet,intnewState){ if(newState==BottomSheetBehavior.STATE_HIDDEN){ if(!isBehaviorShowing(behavior)){ //菜单已经消失 } } } @Override publicvoidonSlide(@NonNullViewbottomSheet,floatslideOffset){ //滑动监听 } };
判断是否可见:
privateBooleanisBehaviorShowing(BottomSheetBehaviorbehavior){ returnbehavior.getState()==BottomSheetBehavior.STATE_COLLAPSED ||behavior.getState()==BottomSheetBehavior.STATE_EXPANDED ||behavior.getState()==BottomSheetBehavior.STATE_SETTLING; }
收回菜单:
behavior.setState(BottomSheetBehavior.STATE_HIDDEN);
弹出菜单:
behavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。