美文网首页
BottomSheets的简单使用

BottomSheets的简单使用

作者: 柏林billy | 来源:发表于2018-08-31 19:53 被阅读0次

BottomSheets的简单使用

一. 添加依赖

compile 'com.android.support:design:24.2.1'

二.布局代码添加

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    android:id="@+id/cl"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/bottom_sheet"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:behavior_hideable="true"
        app:behavior_peekHeight="50dp"
        app:layout_behavior="@string/bottom_sheet_behavior">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <!-- 你的布局代码-->
        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>

app:behavior_hideable="true" 当我们拖拽下来的时候,bottom sheet能否全部隐藏

app:behavior_peekHeight="50dp" 当Bottom关闭的时候,底部最低高度,0表示最低为0就是是关闭后完全隐藏

app:layout_behavior="@string/bottom_sheet_behavior" 代表这是一个bottom Sheets

三.java代码的添加

BottomSheetBehavior behavior;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_bottom_sheet);
    View bottomSheet = findViewById(R.id.bottom_sheet);
    behavior = BottomSheetBehavior.from(bottomSheet);
    behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
        @Override
        public void onStateChanged(@NonNull View bottomSheet, int newState)
        {
            //这里是bottomSheet状态的改变
        }

        @Override
        public void onSlide(@NonNull View bottomSheet, float slideOffset)
        {
            //这里是拖拽中的回调,根据slideOffset可以做一些动画
        }
    });
     //监听添加界面的滑动,让他不能被滑动
    bottomSheet.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return true;
        }
    });
}

setBottomSheetCallback可以监听回调的状态,onStateChanged监听状态的改变,onSlide是拖拽的回调,onStateChanged可以监听到的回调一共有5种:

  • STATE_HIDDEN: 隐藏状态。默认是false,可通过app:behavior_hideable属性设置。
  • STATE_COLLAPSED: 折叠关闭状态。可通过app:behavior_peekHeight来设置显示的高度,peekHeight默认是0。
  • STATE_DRAGGING: 被拖拽状态
  • STATE_SETTLING: 拖拽松开之后到达终点位置(collapsed or expanded)前的状态。
  • STATE_EXPANDED: 完全展开的状态。

最后开关控制代码

if(behavior.getState() == BottomSheetBehavior.STATE_EXPANDED) {
    behavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}else {
    behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}

相关文章

  • BottomSheets的简单使用

    BottomSheets的简单使用 一. 添加依赖 二.布局代码添加 app:behavior_hideable=...

  • BottomSheets使用总结

    BottomSheets是一个底部可操作的布局,包含有BottomSheet,BottomSheetDialog,...

  • 使用MotionLayout实现高德地图bottomSheets

    高德效果 搜到的一个效果,附上链接,用的behavior,我没下源码看,因为我只是想尝试另外一种方式。具体效果暂不...

  • Android-BottomSheets

    先吐槽一下android studio 1.5 beta版编译的时候真的挺慢的,虽说热编译速度上来了,有时候还是会...

  • 简单使用

    创建模型 过滤器 我们有一些字段和我们想让用户筛选的基础上 名称、价格或release_date。 我们创建一个 ...

  • gorange

    数组中简单使用 map中简单使用

  • UICollectionViewLayout的简单使用(简单瀑布

    对于需要使用到列表的页面,一般是使用UITableView或者是UICollectionView来实现。一直以来都...

  • 零碎的小程序笔记

    目录 template的简单使用WXS的简单使用npm的简单使用倒计时js的实现wx:for的使用一些js方法记录...

  • 简单使用使用kaggle

    向我这样的条件不好的可以考虑借助云gpu来加速训练,借助kaggle可以在kaggle服务器上训练数据,kaggl...

  • 命令行的简单使用

    Git命令行的简单使用,仅供自己使用 pod命令行的简单使用

网友评论

      本文标题:BottomSheets的简单使用

      本文链接:https://www.haomeiwen.com/subject/cmuewftx.html