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


三.
是一个基于实现的
代码实现
private void initBottomSheetDialog() {dialog = new BottomSheetDialog(this);View dialogView = LayoutInflater.from(this).inflate(R.layout.item_text, null, false);((TextView) dialogView.findViewById(R.id.text)).setText("bottomsheetDialog");dialog.setContentView(dialogView);dialog.hide();}
然后只需要调用.hide();或者show()方法就能实现的显示隐藏了.

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

文章插图
当然,也能调用状态监听,具体实现如下
private void setBehaviorCallback() {View view = dialog.getDelegate().findViewById(android.support.design.R.id.design_bottom_sheet);final BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from(view);bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {@Overridepublic void onStateChanged(@NonNull View bottomSheet, int newState) {if (newState == BottomSheetBehavior.STATE_HIDDEN) {dialog.dismiss();bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);}}@Overridepublic void onSlide(@NonNull View bottomSheet, float slideOffset) {}});}
四.
是一个实现侧滑删除的效果,比较简单
private void initSwipeDismissBehavior() {SwipeDismissBehavior swipe = new SwipeDismissBehavior();swipe.setSwipeDirection(SwipeDismissBehavior.SWIPE_DIRECTION_ANY);swipe.setListener(new SwipeDismissBehavior.OnDismissListener() {@Overridepublic void onDismiss(View view) {}@Overridepublic void onDragStateChanged(int state) {}});CoordinatorLayout.LayoutParams coordinatorParams =(CoordinatorLayout.LayoutParams)tv1 .getLayoutParams();coordinatorParams.setBehavior(swipe);}
五.$r
r的简单应用大家参考一下这篇文章吧
系统默认提供的毕竟只能实现一部分功能,下一篇博客我们将介绍如何使用自定义来实现复杂的功能.