Android开发

实现类似微信WebView的上拉下拉弹跳效果和iOS的ListV

2017-08-14  本文已影响159人  sirai

SlidingLayout是一种Android平台的View控件,可以帮助你实现类似微信网页浏览的下拉功能,也可以帮助你实现类似iOS中UITableView的下拉上拉弹跳的果冻效果。
SlidingLayout完美兼容Android自带库和兼容库的所有View组件,包括RecyclerView、ListView、ScrollView以及WebView等等。
SlidingLayout简单易用,最低支持Android api v9。
Project site: https://github.com/HomHomLin/SlidingLayout.
Demo: https://github.com/HomHomLin/SlidingLayout/tree/master/demo.

图片.png
compile 'homhomlin.lib:sldinglayout:0.9.0'

如果你的项目需要支持API V9,你需要添加以下依赖:

compile 'com.nineoldandroids:library:2.4.0'

SlidingLayout的使用非常简单,你只需要将你想实现的控件在XML布局中嵌套进SlidingLayout即可,如你需要让ListView实现果冻效果:
1.创建背景View的xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#8c8c8e"
    android:gravity="top"
    android:textSize="12sp"
    android:textColor="#f5f3f3"
    android:padding="16dp"
    android:text="developed by HomhomLin"/>

2.将你的控件放进SlidingLayout中

注意布局需要res-auto命名空间,注意将自己的控件设置一个背景,否则会将背景View透视出来。

<?xml version="1.0" encoding="utf-8"?>
<lib.homhomlib.design.SlidingLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/slidingLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:sliding_mode="both"
    app:background_view="@layout/view_bg">
    <!--background_view为你的背景布局-->
    <ListView
        android:id="@+id/listview"
        android:background="#ffffff"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </ListView>
</lib.homhomlib.design.SlidingLayout>

XML样式参数


    background_view 背景view
    sliding_mode 滑动模式,both为上下可弹跳,top为顶部弹跳,bottom为底部弹跳,默认为both
    sliding_pointer_mode 手指模式,one为只识别一个手指,more为支持多指滑动,默认为more
    top_max 当滑动模式为top时才有效,用于可滑动的最大距离,如"top_max:200dp",默认为-1(不限制)

常用API


    public void setSlidingOffset(float slidingOffset) 设置控件的滑动阻力,有效值为0.1F~1.0F,值越小阻力越大,默认为0.5F
    public void setTargetView(View view) 设置控件的前景View
    public void setBackgroundView(View view) 设置控件的背景View
    public void setSlidingListener(SlidingListener slidingListener) 给控件设置监听,可以监听滑动情况
    public void setSlidingMode(int mode) 设置滑动模式
    public void setSlidingDistance(int max) 设置最大滑动距离,仅在top模式下有效

上一篇下一篇

猜你喜欢

热点阅读