上滑布局的简单实现SlideUpLayout

SlideUpLayout

简介

一个可以实现底部上滑布局的布局,支持xml布局预览


TIM图片20190326140516.gif

导入

implementation 'top.iwill.mylib:slideuplayout:1.0.1'

使用说明

1.添加为根布局

第一个Child布局为正常布局(LinearLayout布局1),第二个为上拉布局(LinearLayout布局2)。支持正常预览
布局2的第一个默认为上拉的控件,不能消费onTouch事件。如果需要全局拖动,设置app:childDraggable="true"。如果上拉布局(布局2)包含一个listview/recyclerview/scrollview,需要设置childDraggable为true并在顶部的时候不消费onTouch事件,就可以衔接上滑动了。




    
    
    
    

        

        

    

2.属性

app:showHeight 未展开状态下布局展示高度(dimension)
app:showPercent 未展开状态下布局展示百分比(float),和showHeight一样的,不过这个是百分比,适合在预览的时候查看全部布局
app:topMargin 完全展开状态,上滑布局顶部距离父布局顶部的距离(dimension)
app:separatePercent 判断是该自动上滑到展开状态还是自动下滑到未展开状态的百分比。100是完全展开位置,0是未展开的默认位置。float∈[0,100]。注意如果不设置则不会自动上滑或者下滑。
app:childDraggable 是否子布局可以响应滑动(Boolean)。默认false

3.接口

   interface MoveProgressListener {
        /**
         * 滑动进度监听,有可能大于1
         */
        fun onMove(progress: Float)

        /**
         * 释放时间,不再触摸
         */
        fun onRelease(child: View)

        /**
         * 滑动到顶部
         */
        fun onSlideToTop(child: View)

        /**
         * 滑动到底部
         */
        fun onSlideToBottom(child: View)
    }

Java:
用setMoveProgressListener(listener:MoveProgressListener)进行监听注册

Kotlin(回调方法可选):

       content.registerProgressListener {
            onMove {

            }
            onRelease{

            }
            onSlideToTop{

            }
            onSlideToBottom{

            }
        }

你可能感兴趣的:(上滑布局的简单实现SlideUpLayout)