1. 程式人生 > >Android編程入門--RecyclerView使用

Android編程入門--RecyclerView使用

idt data manager tin animator end err enter group

布局

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_department"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipChildren="false"
        android:clipToPadding="false"
        android:padding="8dp" />

item 布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height
="match_parent" android:layout_centerInParent="true" android:layout_margin="8dp"> <TextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="36dp" android:background="@drawable/bg_white_to_gray" android:foreground
="?attr/selectableItemBackground" android:gravity="center"/> </android.support.v7.widget.CardView> </RelativeLayout>

Adapter

public class DeptAdapter extends RecyclerView.Adapter<DeptAdapter.ViewHolder>{

    public String[] datas = null;

    public DeptAdapter(String[] datas) {
        this.datas = datas;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_dept,viewGroup,false);
        ViewHolder vh = new ViewHolder(view);
        return vh;
    }

    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int position) {
        viewHolder.mTextView.setText(datas[position]);
    }

    @Override
    public int getItemCount() {
        return datas.length;
    }

    class ViewHolder extends RecyclerView.ViewHolder {
        private TextView mTextView;
        public ViewHolder(View view){
            super(view);
            mTextView = (TextView) view.findViewById(R.id.tv);
        }
    }
}

GridLayoutManager方式

        GridLayoutManager manager = new GridLayoutManager(this, 4);
        rv_department.setLayoutManager(manager);
        rv_department.setItemAnimator(new DefaultItemAnimator());//設置動畫
        DeptAdapter mAdapter = new DeptAdapter(new String[]{"東潤","研發部","科技"});
        rv_department.setAdapter(mAdapter);

Android編程入門--RecyclerView使用