天天看点

Android RecyclerView使用简单介绍

recyclerView已经出来一段时间了,谷歌出这个控件的目的,个人认为是为了取代listView,GridView和Gallery,好处就是为了高度解耦,异常灵活,怎么使用就不说 了,直接上代码

public class Main2Activity extends AppCompatActivity {

    private RecyclerView mRecyclerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        mRecyclerView= (RecyclerView) findViewById(R.id.recyclerview);
        //设置为gridview显示布局
//        GridLayoutManager gridLayoutManager=new GridLayoutManager(this,3);
//        mRecyclerView.setLayoutManager(gridLayoutManager);
        //设置为listView显示布局
//        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        //设置为Gallery画廊显示方式
        LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayout.HORIZONTAL);
        mRecyclerView.setLayoutManager(linearLayoutManager);
        mRecyclerView.setAdapter(new MyAdapter());

    }


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


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

            MyViewHolder myViewHolder=new MyViewHolder(LayoutInflater.from(Main2Activity.this).inflate(R.layout.item,parent,false));
            return myViewHolder;
        }

        @Override
        public void onBindViewHolder(MyViewHolder holder, int position) {

            holder.textView.setText("测试");
        }

        @Override
        public int getItemCount() {
            return 50;
        }

        class MyViewHolder extends RecyclerView.ViewHolder{

            TextView textView;

            public MyViewHolder(View itemView) {
                super(itemView);
                textView= (TextView) itemView.findViewById(R.id.text);
            }
        }
    }
}      
Activity的布局:      
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </android.support.v7.widget.RecyclerView>

</RelativeLayout>      
item的布局:      
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/text"
        android:layout_width="100dp"
        android:layout_height="20dp"
        android:background="#00ee00"
        android:gravity="center"
        android:layout_margin="10dp"
        android:text="测试"/>


</LinearLayout>      

继续阅读