RecyclerView

Recyclerview基本使用<6>——添加标题行

2017-07-10  本文已影响121人  天空在微笑

添加标题行

添加标题的gridlayoutmanager.png
 //RecyclerView设置布局管理manager,一行有三列
        final GridLayoutManager manager = new GridLayoutManager(context, 4);
        manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                //标题占一行,其他占三分之一
                if (position % 5 == 0) {
                    return 4;
                }
                return 1;
            }
        });
        list_recycler.setLayoutManager(manager);

    private GridLayoutManager gridLayoutManager;
    private TestAdapter mAdapter;
    private List<String> mDatas;
    public void setImgRecyclerViewData() {
       mImgRecyclerView = (RecyclerView) findViewById(R.id.id_img_recyclerview);
       mDatas = new ArrayList<String>();
        for (int i = 1; i <20; i++)
        {
            mDatas.add(String.valueOf(i));
        }
        //设置布局管理器
        gridLayoutManager =new GridLayoutManager(this,4);
        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                Log.v("TAG", "position:"+position);
                Log.v("TAG", "position % 5:"+(position % 5));
                if (position % 5 == 0) {
                    return 4;
                }else{
                    return 1;
                }
            }
        });
        mImgRecyclerView.setLayoutManager(gridLayoutManager);
        //设置Item增加、移除动画
        mImgRecyclerView.setItemAnimator(new DefaultItemAnimator());
        //设置adapter
        mImgRecyclerView.setAdapter(mAdapter = new TestAdapter());
    }


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

        @Override
        public int getItemViewType(int position) {
            if (position % 5 == 0) {
                return 0;
            }else{
                return 1;
            }
        }

        @Override
        public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
        {
            MyViewHolder holder = null;
            if (viewType == 0) {
                holder = new MyViewHolder(LayoutInflater.from(
                        DoctorInquiryNewActivity.this).inflate(R.layout.item_text, parent,
                        false));

            } else if (viewType == 1) {
                holder = new MyViewHolder(LayoutInflater.from(
                        DoctorInquiryNewActivity.this).inflate(R.layout.item_img, 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 RecyclerView.ViewHolder
        {

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

  <android.support.v7.widget.RecyclerView
                android:id="@+id/id_img_recyclerview"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingLeft="20dp"
                android:paddingRight="15dp"
                />


item_text.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="20dp"
    >
    <TextView
    style="@style/item_text_style"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:gravity="left"
    android:text="(全图)"
    android:textColor="@color/gray2"
    android:textSize="15sp"
    android:visibility="visible" />
</FrameLayout>

item_img.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="91dp"
    >
    <ImageView
        android:id="@+id/id_iv"
        android:layout_width="73dp"
        android:layout_height="73dp"
        android:layout_gravity="left|center_vertical"
        android:gravity="center"
        android:src="@mipmap/default_square"
         />
    <TextView
        android:id="@+id/id_tv"
        android:layout_width="18dp"
        android:layout_height="18dp"
        android:textSize="13sp"
        android:layout_gravity="left|top"
        android:layout_marginLeft="64dp"
        android:gravity="center"
        android:background="@drawable/shape_bage_gray"
        android:textColor="@android:color/white"
        android:text="1" />
</FrameLayout>

上一篇下一篇

猜你喜欢

热点阅读