package com.example.Anmation;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.OrientationHelper;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.example.day12rikao.R;
public class RecycleGridActivity extends AppCompatActivity {
private Button add;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recucle);
initData();
}
private void initData() {
final RecyclerView recyclerView = findViewById(R.id.recy);
GridLayoutManager manager = new GridLayoutManager(this,3);
manager.setOrientation(OrientationHelper.VERTICAL);
recyclerView.setLayoutManager(manager);
final GridAdapter adapter = new GridAdapter();
for(int i=0;i<10;i++)
{
User user = new User();
user.setName("赵军辉"+i);
adapter.addItem(user);
}
recyclerView.setAdapter(adapter);
DividerGridItemDecoration dividerGridItemDecoration = new DividerGridItemDecoration(this);
recyclerView.addItemDecoration(dividerGridItemDecoration);
//设置增加或删除的动画
recyclerView.setItemAnimator(new DefaultItemAnimator());
add = findViewById(R.id.add);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
User user = new User();
user.setName("老戴");
adapter.addData(0,user);
}
});
adapter.setmCallBack(new GridAdapter.CallBack() {
@Override
public void OnClick(int position) {
Toast.makeText(RecycleGridActivity.this,position+"点击",Toast.LENGTH_LONG).show();
}
@Override
public void OnLong(int position) {
adapter.removeData(position);
}
});
}
}
网格布局的适配器
package com.example.Anmation;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.example.day12rikao.R;
import java.util.ArrayList;
import java.util.List;
public class GridAdapter extends RecyclerView.Adapter<GridAdapter.ViewHolder> {
private List<User> mlist;
public GridAdapter(){
this.mlist = new ArrayList<>();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recy_item,viewGroup,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i) {
User user = mlist.get(i);
viewHolder.title.setText(user.getName());
viewHolder.layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mCallBack!=null)
{
mCallBack.OnClick(i);
}
}
});
viewHolder.layout.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if(mCallBack!=null)
{
mCallBack.OnLong(i);
}
return true;
}
});
}
@Override
public int getItemCount() {
return mlist.size();
}
public void addItem(User user){
if(user!=null)
{
mlist.add(user);
}
}
public void addData(int position,User user){
mlist.add(position,user);
notifyItemInserted(position);
notifyItemRangeChanged(position,mlist.size());
}
public void removeData(int position){
mlist.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position,mlist.size());
}
static class ViewHolder extends RecyclerView.ViewHolder {
public final TextView title;
public final ImageView image;
public final LinearLayout layout;
public ViewHolder(@NonNull View itemView) {
super(itemView);
title = itemView.findViewById(R.id.title);
image = itemView.findViewById(R.id.image);
layout = itemView.findViewById(R.id.ll);
}
}
//设置成员变量
CallBack mCallBack;
public void setmCallBack(CallBack callBack){
this.mCallBack = callBack;
}
public interface CallBack{
void OnClick(int position);
void OnLong(int position);
}
}