真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Filter容器--PopsTabView

#PopsTabView

PopsTabView是個filter容器,他可以自動,快速,構(gòu)建不同篩選樣式,自由組合成一組tab.

目前版本v1.1

公司主營業(yè)務:網(wǎng)站制作、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出來安免費做網(wǎng)站回饋大家。

篩選樣式篩選種類
單列 單選,多選
三行 單選,多選
雙列 單選,多選
復雜 單項單選,單項多選

后續(xù)篩選會不斷完善補充.

項目地址傳送門 https://github.com/ccj659/PopsTabView

#Show

Filter容器--PopsTabView

Filter容器--PopsTabView

Filter容器--PopsTabView

Filter容器--PopsTabView

#Introduction

用戶只需要,知道自己需要哪種filter,將數(shù)據(jù)轉(zhuǎn)化FilterTabBean,然后addFilterItem(),最后自己在onPopTabSet()回調(diào),即可使用,簡單粗暴.

##優(yōu)點:

  • 支持用for()循環(huán)全自動配置,自動記住位置,并在點擊時,返回位置以及選取值.
  • 支持快速,構(gòu)建不同篩選樣式,自由組合成一組filter的tab.
  • 支持自定義filter的順序,選擇樣式.
  • 解決Android版本兼容(解決popwindow顯示位置偏差).
  • 用接口抽象出filter樣式配置器loader,與功能代碼解耦.
  • 支持自定義配置 篩選過程ResultLoader<T>
  • 可以自由擴展,其他類型的Filter類型.

##待完善:

  • 增加其他類型的篩選樣式
  • 回調(diào)參數(shù),需待調(diào)整
  • view的樣式可配置為可自定義
  • 代碼冗余還需優(yōu)化.

#TO USE

##1.設定,篩選器類型. 將PopTypeLoader暴露,用于用戶 篩選器類型.

需要自己按照該模式進行擴展.創(chuàng)建 具體 popwindow 實體對象. 創(chuàng)建對象和 功能代碼解耦和,細節(jié)在PopTabView.addItem()中.若有需要,需要自由擴展,配置.

public class PopTypeLoaderImp implements PopTypeLoader {
    @Override
    public PopupWindow getPopEntity(Context context, List data, OnMultipeFilterSetListener filterSetListener, int tag, int type) {
        PopupWindow popupWindow = null;
        switch (tag) {
            case FilterConfig.TYPE_POPWINDOW_LINKED:
                popupWindow = new LinkFilterPopupWindow(context, data, filterSetListener,type);
                break;
            case FilterConfig.TYPE_POPWINDOW_SORT:
                popupWindow = new SortPopupWindow(context, data, filterSetListener, tag,type);
                break;
            default:
                popupWindow = new MSingleFilterWindow(context, data, filterSetListener,type);
                break;
        }
        return popupWindow;
    }
}

##2.使用方式

###2.1 Builder模式,完成篩選器的創(chuàng)建.

        popTabView.setOnPopTabSetListener(this)
                .setPopEntityLoader(new PopTypeLoaderImp()) //配置 {篩選類型}  方式
                .addFilterItem("篩選1", singleFilterList1.getFilter_tab(), singleFilterList1.getTab_group_type(), FilterConfig.FILTER_TYPE_MUTIFY)
                .addFilterItem("篩選2", linkFilterList.getFilter_tab(), linkFilterList.getTab_group_type(), FilterConfig.FILTER_TYPE_MUTIFY)
                .addFilterItem("篩選3", singleFilterList2.getFilter_tab(), singleFilterList2.getTab_group_type(), FilterConfig.FILTER_TYPE_MUTIFY)
                .addFilterItem("篩選4", sortFilterList.getFilter_tab(), sortFilterList.getTab_group_type(), FilterConfig.FILTER_TYPE_MUTIFY);

###2.2 for()循環(huán)全自動配置模式,完成篩選器的創(chuàng)建.

  /**
             *
             * @param title 篩選標題
             * @param data 篩選數(shù)據(jù)
             * @param tag 篩選類別- 一級篩選,二級篩選,復雜篩選
             * @param type 篩選方式-單選or多選
             * @return
             */
            popTabView.addFilterItem("篩選" + i, singleFilterList1.getFilter_tab(), singleFilterList1.getTab_group_type(), FilterConfig.FILTER_TYPE_SINGLE);

##3.配置篩選后的返回值樣式ResultLoader<T>

public class ResultLoaderImp implements ResultLoader {

    @Override
    public String getResultParamsIds(List selectedList) {

        StringBuilder stringIds =new StringBuilder();

        for (int i = 0; i < selectedList.size(); i++) {
            stringIds.append(selectedList.get(i).getTab_id()+",");
        }

        return  builderToString(stringIds);
    }

    @Override
    public String getResultShowValues(List selectedList) {

        StringBuilder stringValues =new StringBuilder();

        for (int i = 0; i < selectedList.size(); i++) {
            stringValues.append(selectedList.get(i).getTab_name()+",");
        }

        return builderToString(stringValues);
    }

##4.成功的回調(diào),可配置為借口傳參.此處回調(diào),可以自主修改,擴展.

 /**
     * @param index  操作的 filter的下標號 0.1.2.3
     * @param lable  操作的 filter的對應的標簽title
     * @param params 選中的 參數(shù)(需要傳參)
     * @param value  選中的 值
     */
    @Override
    public void onPopTabSet(int index, String lable, String params, String value) {

        Toast.makeText(this, "lable=" + index + "\n&value=" + value, Toast.LENGTH_SHORT).show();
        tv_content.setText("&篩選項=" + index + "\n&篩選傳參=" + params + "\n&篩選值=" + value);

    }

##樣式調(diào)整--待優(yōu)化

1.可在各級Adapter.ViewHolder 中自己定義.

2.可在xml文件中自定義修改

3.O__O "….....好吧,還是我太懶了....以后會補充的~~

##About Me

CSDN:http://blog.csdn.net/ccj659/article/

簡書:http://www.jianshu.com/u/94423b4ef5cf

github: https//github.com/ccj659/


當前標題:Filter容器--PopsTabView
分享地址:http://weahome.cn/article/ghpjsj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部