DrawerConsumer


抽屉效果,抽屉显示在被包裹的控件上层(即覆盖在contentView之上显示),如下图所示:



示例代码

SmartSwipe.wrap(view)
    .addConsumer(new DrawerConsumer())    //抽屉效果
    .setHorizontalDrawerView(buttonsViewGroup) //设置横向(左右两侧)的抽屉为同一个view(常见的侧滑显示删除按钮的功能)
    .setScrimColor(0x2F000000) //设置遮罩的颜色
    .setShadowColor(0x80000000)    //设置边缘的阴影颜色
    ;

设置抽屉View

为某个方向设置抽屉view的同时,如果view不为null,则自动enable当前consumer的该方向;否则,如果view为null,则自动disable当前consumer的该方向

方法名称 参数 备注
setDrawerView int direction
View view
将view设置为指定方向上的抽屉,并将direction方向enable设置为(view != null)
setLeftDrawerView View view 将View设置为左侧抽屉,并将左侧的enable设置为(view != null)
setRightDrawerView View view 将View设置为右侧抽屉,并将右侧的enable设置为(view != null)
setTopDrawerView View view 将View设置为上侧抽屉,并将上侧的enable设置为(view != null)
setBottomDrawerView View view 将View设置为下侧抽屉,并将下侧的enable设置为(view != null)
setHorizontalDrawerView View view 将View设置为左右两侧的抽屉,并将左右两侧的enable设置为(view != null)
setVerticalDrawerView View view 将View设置为上下两侧的抽屉,并将上下两侧的enable设置为(view != null)
setAllDirectionDrawerView View view 将View设置为上下左右4侧抽屉,并将上下左右4侧的enable设置为(view != null)

除了通过代码设置抽屉View之外,还可以在xml布局文件中设置,例如demo首页的侧滑点赞控件:

<com.billy.android.swipe.SmartSwipeWrapper
    android:id="@+id/main_ui_wrap_view"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:background="@drawable/menu_item_bg"
    >
    <!-- 左右两侧的抽屉 -->
    <LinearLayout app:swipe_gravity="right|left" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="match_parent">
        <com.like.LikeButton
                app:icon_type="heart"
                app:icon_size="25dp"
                android:id="@+id/star_button"
                android:layout_width="wrap_content"
                android:layout_height="match_parent" android:background="#15BABA"/>
        <com.like.LikeButton
                app:icon_type="Star"
                app:icon_size="25dp"
                android:id="@+id/like_button"
                android:layout_width="wrap_content"
                android:layout_height="match_parent" android:background="#CBECCC"/>
    </LinearLayout>
    <!-- 主体控件 contentView -->
    <TextView android:background="#f2f2f2"
              android:layout_height="match_parent"
              android:layout_width="match_parent"
              android:gravity="center"
              android:text="@string/demo_main_author" />
    <!-- 上侧抽屉 -->
    <com.like.LikeButton
            app:icon_type="heart"
            app:icon_size="25dp"
            app:swipe_gravity="top"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" android:background="#15BABA"/>
    <!-- 下侧抽屉 -->
    <com.like.LikeButton
            app:icon_type="Thumb"
            app:icon_size="25dp"
            app:swipe_gravity="bottom"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" android:background="#CBECCC"/>
</com.billy.android.swipe.SmartSwipeWrapper>

注意:

  • SmartSwipeWrapper的子view中,第1个不含app:swipe_gravity属性的控件作为被wrap的主体contentView
  • 其它view需要设置app:swipe_gravity才有效
    • app:swipe_gravity="top"表示作为上侧抽屉
    • app:swipe_gravity="right|left"表示作为上下两侧的抽屉
    • 其它设置方式同理可知
  • 最后,别忘了通过findViewById(R.id.main_ui_wrap_view).addConsumer(xxx)设置consumer
    • 支持DrawerConsumerSlidingConsumer

属性列表

继承自 SwipeConsumer公共属性中的参数设置尽皆有效

getter/setter都一一对应,不赘述

变量名称 类型 取值范围 默认值 备注
mScrimColor int 颜色值 0 遮罩玻璃颜色色值,如果为0,则不显示遮罩
mShadowColor int 颜色值 0 边缘阴影颜色色值,如果为0,则不显示边缘阴影
mShadowSize int >=0 10dp 边缘阴影的尺寸,如果为0,则不显示边缘阴影
mShowScrimAndShadowOutsideContentView boolean ture/false false 遮罩和边缘阴影显示在contentView的外侧
Copyright © qibilly.com 2019 all right reserved,powered by Gitbook最后修改时间: 2020-01-05 10:35:37

results matching ""

    No results matching ""