package com.example.rapp1016;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
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.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private RecyclerView recycler;
private List<String>list= new ArrayList<>();
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0){
adapterTwo.notifyDataSetChanged();
}
}
};
private MyAdapterTwo adapterTwo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recycler = (RecyclerView) findViewById(R.id.recycler);
//设置布局管理器
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
GridLayoutManager gridLayoutManager = new GridLayoutManager(this,2);
StaggeredGridLayoutManager staggeredGridLayoutManager
= new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
recycler.setLayoutManager(staggeredGridLayoutManager);
adapterTwo = new MyAdapterTwo(this,list);
adapter = new MyAdapter();
recycler.setAdapter(adapterTwo);
//添加动画
recycler.setItemAnimator(new DefaultItemAnimator());
adapterTwo.setListener(new MyAdapterTwo.onClickItemListener() {
@Override
public void onItem(int position) {
Toast.makeText(MainActivity.this,position+"===",Toast.LENGTH_SHORT).show();
adapterTwo.removeData(position);
handler.sendEmptyMessageDelayed(0,1000);
}
});
for (int i = 0; i <100 ; i++) {
list.add(i+"嘻嘻");
list.add(i+"哈哈");
list.add(i+"吼吼");
}
}
private MyAdapter adapter;
private class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>{
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = View.inflate(MainActivity.this, R.layout.item_layout, null);
MyViewHolder holder =new MyViewHolder(view);
holder.textView = view.findViewById(R.id.text_view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.textView.setText(position+"=================");
}
@Override
public int getItemCount() {
return 50;
}
public class MyViewHolder extends RecyclerView.ViewHolder{
public MyViewHolder(View itemView) {
super(itemView);
}
TextView textView;
}
}
}
package com.example.rapp1016;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.List;
public class MyAdapterTwo extends RecyclerView.Adapter<MyAdapterTwo.MyViewHolderTwo> {
private Context context;
private List<String> list;
public MyAdapterTwo(Context context, List<String> list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public MyViewHolderTwo onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View inflate = View.inflate(context, R.layout.item_layout, null);
MyViewHolderTwo holdertwo = new MyViewHolderTwo(inflate);
holdertwo.textView = inflate.findViewById(R.id.text_view);
holdertwo.relativeLayout = inflate.findViewById(R.id.relative);
return holdertwo;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolderTwo holder, final int position) {
holder.textView.setText(list.get(position));
holder.relativeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listener.onItem(position);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
public class MyViewHolderTwo extends RecyclerView.ViewHolder{
public MyViewHolderTwo(View itemView) {
super(itemView);
}
TextView textView;
RelativeLayout relativeLayout;
}
private onClickItemListener listener;
public void setListener(onClickItemListener listener) {
this.listener = listener;
}
public interface onClickItemListener{
void onItem(int position);
}
public void removeData(int postion){
list.remove(postion);
notifyItemRemoved(postion);
}
}