DL-ZhangTeng / SwipeRecyclerView

封装头部脚部快速添加,自定义左滑菜单item,长按移动item

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

# SwipeRecyclerView
封装头部脚部快速添加,自定义左滑菜单item,长按移动item
1.正常使用recyclerview,adater使用BaseAdapter(SlideMenuRecyclerViewItem实现侧滑菜单)
 RecyclerView recyclerView = findViewById(R.id.recyclerView);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        List list = new ArrayList<Integer>();
        for (int i = 0; i < 100; i++) {
            list.add(i);
        }
        RecyclerView.Adapter adapter = new BaseAdapter<Integer>(list) {
            @NonNull
            @Override
            public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                return new MyViewHolder(new SlideMenuRecyclerViewItem(parent.getContext()));
            }

            @Override
            public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
                View contentView = LayoutInflater.from(SwipeRecyclerViewActivity.this).inflate(R.layout.content_item, ((MyViewHolder) holder).item, false);
                //添加内容布局&菜单布局
                ((TextView) contentView.findViewById(R.id.show)).setText(String.valueOf(data.get(position)));
                ((MyViewHolder) holder).item.addContentView(contentView);
                ((MyViewHolder) holder).item.addMenuView(R.layout.menu_item);
            }

            @Override
            public int getItemCount() {
                return data.size();
            }

            class MyViewHolder extends RecyclerView.ViewHolder {
                public SlideMenuRecyclerViewItem item;

                public MyViewHolder(View itemView) {
                    super(itemView);
                    item = (SlideMenuRecyclerViewItem) itemView;
                }
            }
        };
        
        
2.使用HeaderOrFooterAdapter添加头脚布局(使用多个子item实现,在已有的代码基础上快速添加)
        //添加头部&脚步布局
        HeaderOrFooterAdapter headerOrFooterAdapter = new HeaderOrFooterAdapter((BaseAdapter) adapter) {
            @Override
            public RecyclerView.ViewHolder createHeaderOrFooterViewHolder(Context context, View view) {
                return new MyViewHolder(view);
            }

            @Override
            public void onBindHeaderOrFooterViewHolder(@NonNull RecyclerView.ViewHolder holder, int viewType) {
                if (viewType == 100000) {
                    ((TextView) holder.itemView).setText("1111111111");
                } else if (viewType == 200000) {
                    ((TextView) holder.itemView).setText("2222222222");
                }
            }

            class MyViewHolder extends RecyclerView.ViewHolder {

                public MyViewHolder(View itemView) {
                    super(itemView);
                }
            }
        };
        headerOrFooterAdapter.addFootView(new TextView(this));
        headerOrFooterAdapter.addHeaderView(new TextView(this));
        recyclerView.setAdapter(headerOrFooterAdapter);
3.使用ItemMoveTouchHelper,MoveTouchCallback添加拖曳处理(交换,完成后的处理重写onSwiped实现)
        ItemMoveTouchHelper itemMoveTouchHelper = new ItemMoveTouchHelper(new ItemMoveTouchHelper.MoveTouchCallback());
        itemMoveTouchHelper.attachToRecyclerView(recyclerView);

About

封装头部脚部快速添加,自定义左滑菜单item,长按移动item


Languages

Language:Java 100.0%