设为首页 加入收藏

TOP

android RecyclerView(二)
2019-08-31 00:06:16 】 浏览:120
Tags:android RecyclerView
emView.setOnClickListener(
new View.OnClickListener(){ @Override public void onClick(View v){ int pos = holder.getLayoutPosition(); mOnItemClickLitener.onItemClick(holder.itemView, pos); } }); holder.itemView.setOnLongClickListener(new View.OnLongClickListener(){ @Override public boolean onLongClick(View v){ int pos = holder.getLayoutPosition(); mOnItemClickLitener.onItemLongClick(holder.itemView, pos); return true; } }); } } //获取item总数 @Override public int getItemCount() { if(mFooterView !=null){ return list.size()+1; }else { return list.size(); } } //监听器接口 public interface OnItemClickLitener{ void onItemClick(View view, int position); void onItemLongClick(View view , int position); } private OnItemClickLitener mOnItemClickLitener; public void setOnMyItemClickLitener(OnItemClickLitener mOnItemClickLitener) { this.mOnItemClickLitener = mOnItemClickLitener; } //头和底部的布局 class MyViewHolder extends RecyclerView.ViewHolder { private TextView textView; MyViewHolder(View itemView) { super(itemView); if (itemView == mHeaderView||itemView == mFooterView){ return; } textView= (TextView) itemView.findViewById(R.id.options_tv); textView.setText("UUU"); } } //模拟新增的数据 public void addData(int position) { list.add(position, "Insert 数据"); notifyItemInserted(position+1); Toast.makeText(context,""+list.size(),Toast.LENGTH_SHORT).show(); } //移除一个布局 public void removeData(int position) { list.remove(position); notifyItemRemoved(position); }

实例

private void initDataRecyclerAdapter(){
    recyclerAdapter=new DataRecyclerAdapter(this,mData);
    //布局管理器
    recyclerView.setLayoutManager( new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
    //分割线
    recyclerView.addItemDecoration(new DividerItemDecoration(this,
            DividerItemDecoration.HORIZONTAL));
    //使用默认动画
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    //不使用默认的布局类型,添加自定义头部布局
    recyclerAdapter.setHeaderView(LayoutInflater.from(this).inflate(R.layout.options_title, recyclerView, false));
    //不使用默认的布局类型,添加自定义底部布局
    LayoutInflater inflater= LayoutInflater.from(this);
    View footerView = inflater.inflate(R.layout.options_footer, null);
    recyclerAdapter.setFooterView(footerView);
    //底部布局事件,增加一个item
    footerView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(MainActivity.this,"展开",Toast.LENGTH_SHORT).show();
            recyclerAdapter.addData(mData.size());
        }
    });
    recyclerView.setAdapter(recyclerAdapter);
    recyclerAdapter.setOnMyItemClickLitener(new DataRecyclerAdapter.OnItemClickLitener() {
        //item的点击事件,移除一个item
        @Override
        public void onItemClick(View view, int position) {
            recyclerAdapter.removeData(position);
            Toast.makeText(MainActivity.this,""+mData.size(),Toast.LENGTH_SHORT).show();
        }
        //item的长按事件,显示item下标
        @Override
        public void onItemLongClick(View view, int position) {
            Toast.makeText(MainActivity.this,"第"+position+"个",Toast.LENGTH_SHORT).show();
        }
    });
}
//模拟数据源
private void addData(){
    mData= new ArrayList<>()
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇让你的app体验更丝滑的11种方法!.. 下一篇Android项目实战(四十九):Ando..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目