Skip to content

Latest commit

 

History

History
97 lines (82 loc) · 3.06 KB

README.md

File metadata and controls

97 lines (82 loc) · 3.06 KB

Refreshlayout Adapter Statelayout

Refreshlayout

刷新库部分包含一下功能: 1.普通上拉刷新,下拉加载 2.类似小米系统的橡皮泥模式 3.估值模式,直提供上下拉过程中的数值,可监听设置listener做你想要的事情 4.估值模式下的内刷新,与普通刷新相比,它是控制adapter最前面一个和最后面一个的高度来显示刷新头尾 GIF.gif GIF2.gif GIF3.gif

 <coms.kxjsj.refreshlayout_master.RefreshLayout
        android:id="@+id/Refresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:canFooter="true"
        app:footerID="@layout/footer_layout_horizontal"
        app:headerID="@layout/header_layout_horizontal"
        app:scrollID="@layout/xx" />

多类型Adapter使用

adpter包含以下主要功能: 1.多类型item的支持 通过addtype 2.不同模式下列宽的控制 3.只设置position 的,估值模式 4.增量更新集成 5.复杂数据根据泛型自动匹配类型,也可重写istype自定义什么情况下是该类型 6.移除了状态布局的支持 2017-09-10-15-46-16.png

默认根据itemholder的泛型确定相应position的类型 2017-09-10-15-46-16.png

状态布局的封装

原adapter的状态布局单独做成一个statlayout,已增加对非recyclerview的支持,用法与之前一样 2017-09-10-15-46-16.png

更多功能

itemholder 重写相应方法可达到gridlayoutManager staggled设置列宽

  public abstract class ItemHolder<T> {
    private int layout;
    /**
     * StaggeredLayoutManager重写此方法
     *
     * @return 是否占据一个
     */
    public boolean isfull() {
        return false;
    }

    /**
     * GrideLayoutManager重写此方法
     *
     * @param position
     * @return 占的个数
     */
    public int gridSpanSize(T item, int position) {
        return 1;
    }

    /**
     * onBind时调用
     *
     * @param holder
     * @param item
     * @param position
     */
    public abstract void onBind(Holder holder, T item, int position);

    /**
     * 是否是这种Type的view
     *
     * @param item
     * @param position
     * @return
     */
    public boolean istype(Object item, int position){
        return true;
    }

    public int getLayout() {
        return layout;
    }

    public ItemHolder<T> setLayout(int layout) {
        this.layout = layout;
        return this;
    }
}