RecyclerView控件补充

RecyclerView是最近很火的一个控件,他已经开始逐渐的取代listView和GriView这两个控件,主要是在于它强大的功能和方便的使用方式,而且配合SwipeRefreshLayout这个控件同时可以实现上拉加载、下拉刷新等等高级功能,效果也很是不错。今天我们就来讲一讲简单通过RecyclerView滑动删除条目的功能。

以前的相关博客传送门:
UI控件–RecyclerView(1)
UI控件–RecyclerView(2)
UI控件–SwipeRefreshLayout

  • 效果图图下:
    这里写图片描述

    这里的滑动删除主要借助了ItemTouchHelper这个类,代码如下:

public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {

    private SwipeRefreshLayout swipeRefreshLayout;
    private RecyclerView recyclerView;
    private List<String> dataList;
    private MyAdapter adapter;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initData();
        initView();
    }

    private void initData() {
        dataList = new ArrayList<>();
        for (int i = 0; i < 20; i++) {
            dataList.add("数据" + i);
        }
    }

    private void initView() {
        swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);

        swipeRefreshLayout.setColorSchemeResources(R.color.color1, R.color.color2,
                R.color.color3, R.color.color4);

        recyclerView = (RecyclerView) findViewById(R.id.recyclerView);

        LinearLayoutManager manager = new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.VERTICAL, false);
        adapter = new MyAdapter(getApplicationContext(), dataList);
        recyclerView.setLayoutManager(manager);
        recyclerView.setAdapter(adapter);
        itemTouchHelper.attachToRecyclerView(recyclerView);

        swipeRefreshLayout.setOnRefreshListener(this);

    }


    ItemTouchHelper itemTouchHelper=new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0,ItemTouchHelper.LEFT|ItemTouchHelper.RIGHT) {
        @Override
        public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
            //处理拖动事件
            return false;
        }

        @Override
        public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
            //处理滑动事件
            int poistion=viewHolder.getAdapterPosition();
            dataList.remove(poistion);
            adapter.notifyItemRemoved(poistion);
        }
    });

    @Override
    public void onRefresh() {
        for (int i = 0; i < 20; i++) {
            dataList.add("数据" + i);
        }
        adapter.notifyDataSetChanged();
        swipeRefreshLayout.setRefreshing(false);

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值