赞
踩
对比ListView拓展性更好、添加动画效果更加方便(自带ItemAnimation)、性能更好( ListView继承自:AbsListView。(GirdView也是), RecyclerView直接继承了ViewGroup,从封装的层次上得出了为什么RecyclerView性能比ListView更好的原因, 因为封装的层次越高,查询执行的速度相对较慢),更加灵活
使用步骤
moudle下的build.gradle添加依赖
dependencies{
compile fileTree(dir: 'libs',include: ['*.jar'])
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:recyclerview-v7:24.2.1'
testCompile 'junit:junit:4.12'
}
在布局文件中添加该组件
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
由于RecyclerView不是内置在SDK中,所以要把完整的包路径写出来。
创建适配器
public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.ViewHolder> {
private final LayoutInflater mLayoutInflater;
private final Context mContext;
private String[] mTitles;
// 传递数据源
public MyRecyclerViewAdapter(Context context,String[] strs) {
mTitles = strs;
mContext = context;
mLayoutInflater = LayoutInflater.from(context);
}
// 用于创建ViewHolder实例,在这个方法中将item的布局加载出来
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {// 第二个参数就是View的类型,实现多布局关键
return new ViewHolder(mLayoutInflater.inflate(R.layout.item_text, parent, false));
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。