Android-RecycleView
RecycleView简介
RecylerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,这一点从它的名字recylerview即回收view也可以看出。
RecylerView使用步骤
一. 导入v7包,右键项目,点击Open Module Settings,点击Dependencies,再点击右边的+号,点击第一项Library dependency,进入后选择com.android.support:recyclerview-v7:28.0.0后点击ok
二. activity_recycleview布局
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:orientation="vertical" tools:context=".RecycleViewActivity">
<android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent"/>
</LinearLayout>
|
三. 和ListView一样的item布局
四. 定义一个线性的Adapter适配器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| public class LinearAdapter extends RecyclerView.Adapter<LinearAdapter.LinearViewHolder> {
private Context context;
public LinearAdapter(Context context){ this.context=context; }
@Override public LinearAdapter.LinearViewHolder onCreateViewHolder( ViewGroup viewGroup, int i) { return new LinearViewHolder(LayoutInflater.from(context).inflate(R.layout.item_listview,viewGroup,false)); }
@Override public void onBindViewHolder(LinearAdapter.LinearViewHolder viewHolder, final int i) { viewHolder.textView.setText("Hello World!!"); viewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(context,"click"+i,Toast.LENGTH_SHORT).show(); } }); }
@Override public int getItemCount() { return 15; }
class LinearViewHolder extends RecyclerView.ViewHolder{ private TextView textView;
public LinearViewHolder( View itemView) { super(itemView); textView = itemView.findViewById(R.id.tv_name); } }
}
|
五. 在MainActivity中使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class RecycleViewActivity extends AppCompatActivity { private RecyclerView recyclerView;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recycleview); recyclerView = findViewById(R.id.rv); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setAdapter(new LinearAdapter(this));
} }
|
RecyclerView的扩展
RecyclerView当然还有很多用法,仅仅是布局就包括了线性布局,网格布局,水平布局,瀑布流等多种形式,除此以外还有Decoration等修饰功能,可以说是非常好用,有兴趣可自行了解。