对于Recyclerview的item一些的简单操作

本文介绍 RecyclerView 的基本使用方法,包括添加分割线、自定义头部和脚部,以及实现 Grid 和瀑布流布局。提供了完整的代码示例,展示了如何通过 GridLayoutManager 和 StaggeredGridLayoutManager 实现不同的布局效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                对于Recyclerviewitem一些的简单操作

对于RecyclerView   的理解和listView的认识基本上是大同小异的,之前在listView的认识中我们知道了,条目的多种事件,例如:点击事件,长按点击事件,滑过事件,移动事件,等等。当然在RecyclerView   上面也能实现,只不过是实现的方法不一样。




添加分割线的使用addItemDecoration

 

添加各种颜色分割线的使用  :在drawable 的制作自己的分割线,之后在Style中将默认的分割线用自创的分割线替换掉,并且绑定就能使用,

添加页面上的头部(head   and   foot)的使用  在头部和脚部做成自己的页面就可以了在适配器里面将自己的三个页面统一在适配器里面调试并使用。

 

Listview  Greadview   和瀑布流的使用的一些操作

Rcyclerview 的 使用三大 形式,这样

public class HomeActivity extends ActionBarActivity
{

    private RecyclerView mRecyclerView;
    private List<String> mDatas;
    private HomeAdapter mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_single_recyclerview);

        initData();
        mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        mRecyclerView.setAdapter(mAdapter = new HomeAdapter());

    }

    protected void initData()
    {
        mDatas = new ArrayList<String>();
        for (int i = 'A'; i < 'z'; i++)
        {
            mDatas.add("" + (char) i);
        }
    }

    class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder>
    {

        @Override
        public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
        {
            MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
                    HomeActivity.this).inflate(R.layout.item_home, parent,
                    false));
            return holder;
        }

        @Override
        public void onBindViewHolder(MyViewHolder holder, int position)
        {
            holder.tv.setText(mDatas.get(position));
        }

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

        class MyViewHolder extends ViewHolder
        {

            TextView tv;

            public MyViewHolder(View view)
            {
                super(view);
                tv = (TextView) view.findViewById(R.id.id_num);
            }
        }
    }

}

这是greadview 的实现主要在getItemOffsets方法中,去判断如果是最后一行,则不需要绘制底部;如果是最后一列,则不需要绘制右边,整个判断也考虑到了StaggeredGridLayoutManager的横向和纵向,所以稍稍有些复杂。最重要还是去理解,如何绘制什么的不重要。一般如果仅仅是希望有空隙,还是去设置item的margin方便

//mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        mRecyclerView.setLayoutManager(new GridLayoutManager(this,4));
  • 1
  • 2

mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.HORIZONTAL));

  • 1

/ 设置item动画
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
  • 1








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值