recycleview方法

本文详细介绍了Android中RecyclerView的多种布局方式,包括LinearLayoutManager、StaggeredGridLayoutManager和GridLayoutManager的使用方法,以及如何添加ItemAnimator实现动画效果。同时,还讲解了如何设置条目点击事件。
//布局管理器 一排的
 recycleView.setLayoutManager(new LinearLayoutManager(this,LinearLayout.VERTICAL,false));

瀑布流

 //瀑布流
//StaggeredGridLayoutManager.VERTICAL代表有多少列;
// StaggeredGridLayoutManager.HORIZONTAL代表有多少行
 recycleView.setLayoutManager(new StaggeredGridLayoutManager
                        (3, StaggeredGridLayoutManager.VERTICAL));
                        
        

gradview样式的

recycleView.setLayoutManager(new GridLayoutManager(this,3));

recycleview一系列的

//增加,移除动画
        recycleView.setItemAnimator(new DefaultItemAnimator());

        //条目点击
        madapter.setItemClick(new Madapter.ItemClick() {
            @Override
            public void itemc(View view,int Position) {
                Toast.makeText(MainActivity.this,"哈哈哈哈哈"+Position,Toast.LENGTH_SHORT).show();
            }
        });

adpater

public class Madapter extends RecyclerView.Adapter<Madapter.ViewHolder> {
    private final MainActivity mainActivity;
    private final List<String> dlist;

    public Madapter(MainActivity mainActivity, List<String> dlist) {
        this.mainActivity = mainActivity;
        this.dlist = dlist;
    }

    @NonNull
    @Override
    //创建viewholder
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = View.inflate(mainActivity, R.layout.item_list, null);
        ViewHolder viewHolder = new ViewHolder(view);
        return viewHolder;
    }
   //这一步就是给他们控件的东西
    @Override
    public void onBindViewHolder(@NonNull final ViewHolder viewHolder, int i) {
        viewHolder.tv.setText(dlist.get(i));

        //条目点击事件
        viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int layoutPosition = viewHolder.getLayoutPosition();
                mItemClick.itemc(viewHolder.itemView,layoutPosition);
            }
        });
    }
//获取总条目数
    @Override
    public int getItemCount() {
        return dlist.size();
    }

   //获取控件
    public class ViewHolder extends RecyclerView.ViewHolder {
        ImageView image;
        TextView tv;
        public ViewHolder(@NonNull final View itemView) {
            super(itemView);

            image = itemView.findViewById(R.id.image);
            tv = itemView.findViewById(R.id.tv);

        }
    }

    //定义接口
    public interface ItemClick{
        void  itemc(View view,int Position);

    }

    public ItemClick mItemClick;

    public void setItemClick(ItemClick itemClick){
        mItemClick=itemClick;
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值