RecyclerView的用法
引用:
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
xml:
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="7.5dp" />
Code:
recyclerView = (RecyclerView) v.findViewById(R.id.recyclerView);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(new RecyclerViewAdapter());
Adapter:
- 继承RecyclerView.Adapter
- 定义内部类ViewHolder
- 重写方法:
- onCreateViewHolder
- onBindViewHolder
- getItemCount
代码如下:
/**
* Created by Divano on 16/9/1.
*/
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.rc_fm_list_1, parent, false);
ViewHolder vh = new ViewHolder(view);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.iv.setImageResource(R.drawable.threeli);
}
@Override
public int getItemCount() {
return 30;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
CardView cardview;
ImageView iv;
public ViewHolder(View itemView) {
super(itemView);
cardview = (CardView) itemView.findViewById(R.id.cardview);
iv = (ImageView) itemView.findViewById(R.id.iv);
}
}
}