RecyclerView Activity

本文详细介绍了在Android应用中如何使用RecyclerView实现不同布局效果,包括列表、网格及瀑布流样式,并展示了如何为RecyclerView添加动画效果和分割线,同时实现了数据项点击后的删除动画。

public class MainActivity extends AppCompatActivity {


    List<String> list = new ArrayList<>();

    private RecyclerView recyClerView;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        recyClerView = findViewById(R.id.main_recycler);

        for (int i = 0; i < 20; i++) {

            list.add("item " + i);

        }

        final MyAdapter myAdapter = new MyAdapter(list);


        //1.类似listview条目的形式

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);

        recyClerView.setLayoutManager(linearLayoutManager);

        //设置item线性摆放的方向,默认是垂直的

//        linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);


        //2.类似gridView的形式

//        GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);

//        gridLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);

//        recyClerView.setLayoutManager(gridLayoutManager);


        //3.瀑布流的形式

//        StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);

//        recyClerView.setLayoutManager(staggeredGridLayoutManager);


        myAdapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {

            @Override

            public void onItemClick(View view, int position) {

                list.remove(position);

//                这个方法没有动画效果,而且整个刷新

                myAdapter.notifyDataSetChanged();

//                //我们用带动画的局部刷新的方法

//                myAdapter.notifyItemRemoved(position);

            }

        });

        recyClerView.setAdapter(myAdapter);

        //设置默认的动画

        recyClerView.setItemAnimator(new DefaultItemAnimator());


        //添加分割线

        DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);

        //设置分割线的颜色

        dividerItemDecoration.setDrawable(getResources().getDrawable(R.drawable.item_decoration));

        recyClerView.addItemDecoration(dividerItemDecoration);

    }

}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想不上班

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值