1 Star 0 Fork 1

Alex / FastAdapter

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

FastAdapter

介绍

RecyclerView Adapter 常用功能(点击事件、绑定数据、Header、Footer、动画等)进行封装。

截图

FastAdapter

使用说明

        FastAdapter<String> adapter = new FastAdapter<String>(this, R.layout.item_normal, NAMES) {
        
            @Override
            protected ViewHolder onCreateViewHolderImpl(@NonNull ViewGroup parent, int viewType) {
                if (Math.random() > 0.5) {
                    TextView textView = new TextView(parent.getContext());
                    textView.setId(R.id.title);
                    textView.setTextSize(40f);
                    //返回自定义的Holder
                    return new ViewHolder(textView);
                }
                //返回默认创建的Holder(需设置默认的layoutRes)
                return super.onCreateViewHolderImpl(parent, viewType);
            }
        
            //处理自定义的 itemType
            @Override
            protected int getItemViewTypeImpl(int position, int dataPosition) {
                return super.getItemViewTypeImpl(position, dataPosition);
            }

            @Override
            public void bindData(ViewHolder holder, String s) {
                //绑定数据样式
                holder.setTextColorRes(R.id.title, R.color.design_default_color_primary_dark);
                holder.setText(R.id.title, s);
            }
        };
        //列表项点击
        adapter.setOnItemClickListener((view, holder, data) -> {
            Toast.makeText(this, data, Toast.LENGTH_SHORT).show();
        });
        //列表项子视图点击事件处理
        adapter.setOnItemChildClickListener(R.id.trigger, (view, holder, data) -> {
            Toast.makeText(this, "trigger -> " + data, Toast.LENGTH_SHORT).show();
        });
        //设置动画, 可自定义实现ItemAnimator接口, once 为true时动画只执行一次
        adapter.setItemAnimator(new AlphaItemAnimator(), false);
        //设置自定义 SpanSizeLookup
        adapter.setSpanSizeLookup(new SpanSizeLookup<String>() {
            @Override
            public int getSpanSize(int itemViewType, int spanCount, int position, @Nullable String s) {
                //直接 return spanCount 代表此项占一整行
                if ("Sofia".equals(s)) return spanCount;
                return super.getSpanSize(itemViewType, spanCount, position, s);
            }
        });
        //添加 Header
        adapter.addHeaderView(makeATextView());
        //添加 Footer
        adapter.addFooterView(makeATextView());

        recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
        recyclerView.setAdapter(adapter);

空文件

简介

RecyclerView Adapter 常用功能(点击事件、绑定数据、Header、Footer、动画等)进行封装 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Android
1
https://gitee.com/xuyougen/fast-adapter.git
git@gitee.com:xuyougen/fast-adapter.git
xuyougen
fast-adapter
FastAdapter
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891