activity_main
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent" tools:context="com.example.com.rikao522.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:id="@+id/but_add" android:text="添加"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/but_del" android:layout_weight="1" android:text="删除"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/but_list" android:layout_weight="1" android:text="list"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/but_grid" android:layout_weight="1" android:text="Grid"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/but_flow" android:layout_weight="1" android:text="flow"/> </LinearLayout> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/rev"></android.support.v7.widget.RecyclerView> </LinearLayout>
Activity里:
package com.example.com.rikao522; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.view.View; import android.widget.Button; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private Button butAdd; private Button butDel; private Button butList; private Button butGrid; private Button butFlow; private RecyclerView rev; private List<String> list; private MyRecycleViewAdapter myRecycleViewAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //1初始化控件 getinit(); //2初始化数据 getdata(); //3创建并设置RecycleView的适配器 myRecycleViewAdapter = new MyRecycleViewAdapter(this,list); rev.setAdapter(myRecycleViewAdapter); rev.setItemAnimator(new DefaultItemAnimator()); } private void getdata() { list = new ArrayList<>(); for (int i = 0; i <50 ; i++) { list.add("哈哈1"+i); list.add("嘿嘿2"+i); } //添加的方法 butAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { myRecycleViewAdapter.addData(0); } }); //删除的方法 butDel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { myRecycleViewAdapter.removeData(0); } }); butGrid.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { rev.setLayoutManager( new GridLayoutManager( MainActivity.this, 2 ) ); } }); butFlow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { rev.setLayoutManager( new StaggeredGridLayoutManager( 3, StaggeredGridLayoutManager.VERTICAL ) ); } }); butList.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { rev.setLayoutManager(new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false)); } }); } private void getinit() { butAdd = findViewById(R.id.but_add); butDel = findViewById(R.id.but_del); butList = findViewById(R.id.but_list); butGrid = findViewById(R.id.but_grid); butFlow = findViewById(R.id.but_flow); rev = findViewById(R.id.rev); } }子布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <ImageView android:layout_width="80dp" android:layout_height="80dp" android:id="@+id/img" android:background="@mipmap/ic_launcher"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv"/> </LinearLayout>
适配器:
package com.example.com.rikao522; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import java.util.ArrayList; import java.util.List; /** * Created by 联想 on 2018/5/23. */ class MyRecycleViewAdapter extends RecyclerView.Adapter<MyRecycleViewAdapter.ViewHolder>{ Context context; private List<String> list; public MyRecycleViewAdapter(Context context, List<String> list) { this.context = context; this.list = list; } @Override public ViewHolder onCreateViewHolder( ViewGroup parent, int viewType) { View itenview = View.inflate(context, R.layout.view, null); ViewHolder viewHolder = new ViewHolder(itenview); return viewHolder; } @Override public void onBindViewHolder( ViewHolder holder, int position) { String s = list.get(position); holder.text.setText(s); } @Override public int getItemCount() { return list.size(); } class ViewHolder extends RecyclerView.ViewHolder{ private final ImageView image; private final TextView text; public ViewHolder(View itemView) { super(itemView); image = itemView.findViewById(R.id.img); text = itemView.findViewById(R.id.tv); } } // 添加数据 public void addData(int position) { // 在list中添加数据,并通知条目加入一条 for (int i = 0; i <10 ; i++) { list.add(position, "我最帅" + i); //添加动画 notifyItemInserted(position); } } // 删除数据 public void removeData(int position) { list.remove(position); //删除动画 notifyItemRemoved(position); notifyDataSetChanged(); } }