recycleview代替了listview
布局文件中的:
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:background="@color/white"
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"/>
然后去activity中实例化recycleview这里与listview有一点不同
mRecyclerView=(RecyclerView)findViewById(R.id.recyclerView);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
这里必须要用一个layoutmanager
然后接着是实现recycleview的item的布局:
xml布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout android:orientation="horizontal"
android:layout_height="match_parent"
android:layout_width="match_parent">
<ImageView android:id="@+id/item_logo"
android:layout_height="48dp"
android:layout_width="48dp"
android:scaleType="centerCrop"
android:padding="5dp"
android:adjustViewBounds="true"/>
<TextView android:id="@+id/item_title"
android:layout_height="48dp"
android:layout_width="0dp"
android:layout_weight="1"
android:textSize="14dp"
android:gravity="center_vertical"
android:layout_marginLeft="11dp"/>
</LinearLayout>
<View android:layout_width="fill_parent"
android:layout_height="0.5dp"
android:background="@android:color/darker_gray"/>
</LinearLayout>
这里还需要像listview那样的一个适配器adapter,这里需要自己去继承recycleview.adapter这个类,并且要实现里面的一些方法:
class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
private List<Data> listData=new ArrayList<Data>();
public MyAdapter(List data){
listData=data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View item= View.inflate(viewGroup.getContext(),R.layout.recyclerview_item,null);
ViewHolder viewHolder = new ViewHolder(item);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
viewHolder.text.setText(listData.get(i).itemName);
viewHolder.img.setImageResource(listData.get(i).img);
}
@Override
public int getItemCount() {
return listData.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
private ImageView img;
private TextView text;
public ViewHolder(View itemView) {
super(itemView);
img=(ImageView)itemView.findViewById(R.id.item_logo);
text=(TextView)itemView.findViewById(R.id.item_title);
}
}
}
最后就是绑定这个适配器:
mRecycleView.setAdapter(new MyAdapter());