当前位置 : 主页 > 编程语言 > java >

RecyclerView的使用

来源:互联网 收集:自由互联 发布时间:2021-06-28
gistfile1.txt private void initRecyclerView() { LinearLayoutManager linearLayoutManager = new LinearLayoutManager( this, LinearLayoutManager.VERTICAL, false); mRecyclerView.setLayoutManager(linearLayoutManager); mRecyclerView.addItemDecorat
gistfile1.txt
private void initRecyclerView() {
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(
                this, LinearLayoutManager.VERTICAL, false);
        mRecyclerView.setLayoutManager(linearLayoutManager);

        mRecyclerView.addItemDecoration(new MyItemDecoration());

        adapter = new RecyclerAdapter();
        mRecyclerView.setAdapter(adapter);
    }

    class RecyclerAdapter extends RecyclerView.Adapter
 
   {

        @Override
        public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

            MyViewHolder holder;
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
            holder = new MyViewHolder(view);

            return holder;
        }

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

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

        class MyViewHolder extends RecyclerView.ViewHolder{
            TextView name;

            public MyViewHolder(View view) {
                super(view);
                name = view.findViewById(R.id.name);
            }
        }
    }

    /**
     * RecyclerView的间距类
     */
    class MyItemDecoration extends RecyclerView.ItemDecoration {

        /**
         * @param outRect 边界
         * @param view    recyclerView ItemView
         * @param parent  recyclerView
         * @param state   recycler 内部数据管理
         */
        @Override
        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
            //设定底部边距为1px
            outRect.set(0, 0, 0, dip2px(MainActivity.this, 10));
        }
    }

    public int dip2px(Context context, float dipValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dipValue * scale + 0.5f);
    }
 
上一篇:工具类
下一篇:Redis数据库的连接池
网友评论