• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

AndroidFilterView: android filterView use for listView or recyclerview

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

AndroidFilterView

开源软件地址:

https://gitee.com/ryan_ke_admin/AndroidFilterView

开源软件介绍:

AndroidFilterView

android filterView use for listView or recyclerview

package adapterFilter;

import android.annotation.TargetApi;import android.app.Activity;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Color;import android.graphics.drawable.Drawable;import android.os.Build;import android.util.AttributeSet;import android.view.View;import android.widget.ImageView;import android.widget.RelativeLayout;import android.widget.TextView;import android.widget.Toast;

import java.util.List;

import reddottips.adapterfilter.R;

/**

  • 适配所有筛选控件
  • Created by keRui on 2016/11/16.*/

public class AdapterFilterView extends RelativeLayout implements View.OnClickListener {private TextView filterContent;private ImageView rightIcon;private View view;private boolean appear = false;private Context context;private Drawable press_blue = getResources().getDrawable(R.mipmap.press_blue);private Drawable normal_gray = getResources().getDrawable(R.mipmap.normal_gray);private Activity act;private int mIdContent;private List filterList;private List tagList;private String tag;FilterFragment filterFragment = new FilterFragment();

public ClickCallBack getClickCallBack() {    return clickCallBack;}public void setClickCallBack(ClickCallBack clickCallBack) {    this.clickCallBack = clickCallBack;}private ClickCallBack clickCallBack;public AdapterFilterView(Context context) {    super(context);}public AdapterFilterView(Context context, AttributeSet attrs) {    super(context, attrs);    this.context = context;    initView();    initAttrs(context, attrs);}/** * 初始化 */private void initView() {    view = View.inflate(getContext(), R.layout.view_adapter_filter, this);    view.setOnClickListener(this);    filterContent = (TextView) view.findViewById(R.id.filter_content);    rightIcon = (ImageView) view.findViewById(R.id.right_icon);}private void initAttrs(Context context, AttributeSet attrs) {    TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.AdapterFilterView);    String defaultFilter = array.getString(R.styleable.AdapterFilterView_filterView_default_filter);    filterContent.setText(defaultFilter);}/** * 初始化 */public void build(Activity act, int id_content, List<String> list, String tag, List<String> tagList) {    this.filterList = list;    this.act = act;    this.mIdContent = id_content;    this.tag = tag;    this.tagList = tagList;}/** * 更新RightIcon */@TargetApi(Build.VERSION_CODES.JELLY_BEAN)private void syncRightIcon() {    if (appear) {        rightIcon.setBackground(press_blue);        filterContent.setTextColor((Color.parseColor("#4081D6")));    } else {        rightIcon.setBackground(normal_gray);        filterContent.setTextColor((Color.parseColor("#4e4e4e")));    }}/** * 点击事件 * * @param v 控件 */@Overridepublic void onClick(View v) {    if (v == view) {        if (!appear) {            appear = true;            syncRightIcon();            show();        } else {            appear = false;            syncRightIcon();            if (filterFragment != null && filterFragment.isVisible()) {                filterFragment.popBackStack(FilterConstant.getInstance().DEFAULT_NULL);            }        }    }}private void show() {    if (act != null && mIdContent != 0) {        clearStack();        FragmentManager fm = act.getFragmentManager();        FragmentTransaction transaction = fm.beginTransaction();        transaction.replace(mIdContent, filterFragment, tag);        transaction.addToBackStack(null);//将fragment加入返回栈        filterFragment.list = filterList;        filterFragment.setCallBack(new FilterFragment.CallBack() {            @Override            public void getItem(int filter) {                appear = false;                syncRightIcon();                clickCallBack.syncFilter(filter, tag);            }        });        transaction.commitAllowingStateLoss();    } else {        Toast.makeText(getContext(), "act和id_content不可为空", Toast.LENGTH_SHORT).show();    }}/** * 清掉堆栈的filterFragment对象 */private void clearStack() {    for (int i = 0; i < tagList.size(); i++) {        if (act.getFragmentManager().findFragmentByTag(tagList.get(i)) != null) {            FilterFragment f = (FilterFragment) act.getFragmentManager().findFragmentByTag(tagList.get(i));            f.popBackStack(FilterConstant.getInstance().DEFAULT_NULL);        }    }}/** * 回调 */public interface ClickCallBack {    void syncFilter(int position, String tag);}/** * 筛选 默认值 * * @param filter */public void setFilter(String filter, int position) {    if (filter != null) {        filterContent.setText(filter);        appear = false;        syncRightIcon();    }}

}

演示如下


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap