androidrecyclerview

xiaoxiao2021-02-28  49

recyclerview需要导入support-v7使用recyclerview优点是切换样式容易一个可以顶ListView GridView使用 recyclerview缺点是没有点击 长按事件需要自己写 插拔式的体验,高度的解耦,异常的灵活

导入

compile 'com.android.support:recyclerview-v7:25.+' MainActivity

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); recyclerView = (RecyclerView) findViewById(R.id.id_recyclerview); /** * 这里是控制RecyclerView的样式 * LinearLayoutManager 就类似listview 上到下的排列 * GridLayoutManager 就是Gridview 4是列数 * StaggeredGridLayoutManager 也像Gridview 可以控制上到下的排列 也可以左到右的排列 */ // recyclerView.setLayoutManager(new LinearLayoutManager(this)); // recyclerView.setLayoutManager(new GridLayoutManager(this, 4)); // recyclerView.setLayoutManager(new StaggeredGridLayoutManager(4,StaggeredGridLayoutManager.VERTICAL)); recyclerView.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.HORIZONTAL)); // recyclerView.setAdapter(animationListAdapter = new AnimationListAdapter(this, strings)); recyclerView.setAdapter(mAdapter = new RecyclerAdapter(this, strings)); recyclerView.setItemAnimator(new DefaultItemAnimator()); SpacesItemDecoration decoration = new SpacesItemDecoration(16); recyclerView.addItemDecoration(decoration); } protected void initData() { strings = new ArrayList<String>(); for (int i = 'a'; i <= 'z'; i++) { strings.add("" + (char) i); } } Adapter

class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.Holder> { private static final String TAG = "RecyclerAdapter"; private Context context; private List<String> strings; public RecyclerAdapter(Context context, List<String> strings) { this.context = context; this.strings = strings; } @Override public Holder onCreateViewHolder(ViewGroup parent, int viewType) { Holder holder = new Holder(LayoutInflater.from(context).inflate(R.layout.item, parent, false)); return holder; } @Override public void onBindViewHolder(Holder holder, int position) { holder.textView.setText(strings.get(position)); } @Override public int getItemCount() { return strings.size(); } class Holder extends RecyclerView.ViewHolder { TextView textView; public Holder(View view) { super(view); textView = (TextView) view.findViewById(R.id.textView); } } }

mainactivity layout

<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout 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" tools:context="com.team.we.recyclerview.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/id_recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="#ffff0000" android:dividerHeight="10dp" /> </android.support.constraint.ConstraintLayout> itemlayout

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="@color/colorPrimary" android:layout_height="150dp"> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:gravity="center_horizontal|center_vertical" /> </RelativeLayout>

持续更新中,下次更新点击事件和item刷新 增删 item交换操作

demo下载

https://github.com/CzmZomBie/recyclerview

转载请注明原文地址: https://www.6miu.com/read-81767.html

最新回复(0)