• RecyclerView使用方法总结


    RecyclerView( android.support.v7.widget.RecyclerView)是安卓新推出的一个滑动组件,感觉是用来替代ListView实现更多的效果,使用时和ListView相比也是不同,这里记录下用法:

    1、线性布局(LinearLayoutManager):

     首先是确定布局类型,使用LinearLayoutManager来定义:

    LinearLayoutManager mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);

    下来是设置Adapter,和ListView的不同,RecyclerView必须自定义一个RecyclerView.Adapter来实现:

    //recylerview的数据适配器
    class mRecyclerViewAdapter extends RecyclerView.Adapter<mRecyclerViewAdapter.ViewHolder>{
    
        
        // 自定义内部的ViewHolder
        public static class ViewHolder extends RecyclerView.ViewHolder {
            
            public TextView mTextView;
    
            public ViewHolder(View v) {
                super(v);
             mTextView = (TextView) v.findViewById(R.id.showtext); 
            }
        }
    
        private ArrayList<String> mArryList;
    
        private Context mContext;
     
        public mRecyclerViewAdapter(Context context,ArrayList<String> list){
            mContext = context;
            mArryList = list;
        }
    
        @Override
        public int getItemCount() {
            // TODO Auto-generated method stub
            return mArryList.size();
        }
    
        @Override
        public void onBindViewHolder(ViewHolder holder, int pos) {
             holder.mTextView.setText(mArryList.get(pos));
        }
    
        @Override
        public ViewHolder onCreateViewHolder(ViewGroup arg0, int arg1) {
            View v = LayoutInflater.from(mContext).inflate(
                    R.layout.recyleview_item_layout, null);
            final ViewHolder vh = new ViewHolder(v);
            return vh;
        }
    }

     点击事件的实现:将内部点击事件通过接口传递到外部:

     定义接口:

    interface OnRecyclerViewItemClickListener {
        void onRecyclerClick(View view, int pos);
    }

     adapter内部定义接口实例:

        private OnRecyclerViewItemClickListener mOnItemClickListener = null;
        public void setmOnItemClickListener(
                OnRecyclerViewItemClickListener mOnItemClickListener) {
            this.mOnItemClickListener = mOnItemClickListener;
        }

    adapter内部View事件绑定:

        @Override
        public ViewHolder onCreateViewHolder(ViewGroup parent, int arg1) {
           //注意这里要传入parent元素,否则V的宽度无法math_parent
    View v
    = LayoutInflater.from(mContext).inflate( R.layout.recyleview_item_layout, parent ,false);
    final ViewHolder vh = new ViewHolder(v); v.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (mOnItemClickListener != null) { mOnItemClickListener.onRecyclerClick(v, vh.getPosition()); } } }); return vh; } }

     外部调用:

    final mRecyclerViewAdapter mrecyleadapter = new mRecyclerViewAdapter(testList, this);
            mRecyclerViewAdapter 
                    .setOnItemClickListener(new OnRecyclerViewItemClickListener() {
                        @Override
                        public void onRecyclerClick(View view, int pos) {
                              dowhat...
                        }
                    });

     待续...

  • 相关阅读:
    理解javascript 对象,原型对象、闭包
    JSON数据理解
    css 盒模型相关样式
    神奇的CSS3选择器
    设计模式六大原则
    java反射机制性能优化
    一份关于jvm内存调优及原理的学习笔记
    浅谈http请求数据分析
    Apache+Tomcat部署负载均衡(或集群)
    同台电脑部署多组Tomcat负载均衡(或集群)
  • 原文地址:https://www.cnblogs.com/hack132/p/5032341.html
Copyright © 2020-2023  润新知