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>