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); } }
————————————————————————————————————————————————————
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(); } }