本文将带你了解Android应用开发Android开发基于Popupwindow实现的筛选房源信息等相关的可自由排序控件,希望本文对大家学Android有所帮助。
功能
区分
支持区域二级选择 FilterTabConfig.FILTER_TYPE_AREA
支持单行选择 FilterTabConfig.FILTER_TYPE_SINGLE_SELECT
支持带EditText的单行选择 FilterTabConfig.FILTER_TYPE_PRICE
支持多类型选择 FilterTabConfig.FILTER_TYPE_MUL_SELECT
目前只支持以上4种类型的Popupwindow样式,可以自由组合
如何使用
Gradle
compile 'com.samlu:filtertab:1.0.0'
Maven
com.samlu
filtertab
1.0.0
pom
XML
Java
FilterInfoBean bean1 = new FilterInfoBean("区域", FilterTabConfig.FILTER_TYPE_AREA, filterEntity.getArea());
FilterInfoBean bean2 = new FilterInfoBean("总价", FilterTabConfig.FILTER_TYPE_PRICE, filterEntity.getPrice());
FilterInfoBean bean3 = new FilterInfoBean("户型", FilterTabConfig.FILTER_TYPE_SINGLE_SELECT, filterEntity.getHouseType());
FilterInfoBean bean4 = new FilterInfoBean("筛选", FilterTabConfig.FILTER_TYPE_MUL_SELECT, filterEntity.getMulSelect());
ftb_filter.addFilterItem(bean1.getTabName(), bean1.getFilterData(), bean1.getPopupType(), 0);
ftb_filter.addFilterItem(bean2.getTabName(), bean2.getFilterData(), bean2.getPopupType(), 1);
ftb_filter.addFilterItem(bean3.getTabName(), bean3.getFilterData(), bean3.getPopupType(), 2);
ftb_filter.addFilterItem(bean4.getTabName(), bean4.getFilterData(), bean4.getPopupType(), 3);
javabean 要继承 BaseFilterBean,重写里面的方法
public class FilterAreaEntity extends BaseFilterBean {
....
}
需要用到的Activity或者fragment里面实现OnSelectResultListener这个接口
ftb_filter.setOnSelectResultListener(new OnSelectResultListener() {
@Override
public void onSelectResult(FilterResultBean resultBean) {
// 接受点击的返回值
}
});
控件调用之前最好初始化一下,避免加载失败重新加载数据是出现重复的问题。
ftb_filter.removeViews();
OnSelectFilterNameListener 实现这个接口可以拿到选择后对应的Tab名称
ftb_filter.setOnSelectFilterNameListener(new OnSelectFilterNameListener() {
@Override
public void onSelectFilterName(String name, int popupindex) {
// name:tab名称 popupindex:对应的popup的位置
}
});
OnPopupDismissListener Popupwindow消失监听
Github地址
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!