public class MainActivity extends AppCompatActivity { /** * 复用视图的控件 */ private RecyclerView recyclerView; /** * 显示的数据 */ private ArrayList<String> mDatas; /** * RecyclerView的适配器 */ private MyRecyclerViewAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //1.找到控件 recyclerView = (RecyclerView) findViewById(R.id.recyclerview); //2.声名为瀑布流的布局方式: 3列,垂直方向 StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL); //3.为recyclerView设置布局管理器 recyclerView.setLayoutManager(staggeredGridLayoutManager); initData();//初始化数据 //3.创建适配器 adapter = new MyRecyclerViewAdapter(this, mDatas); //设置添加,移除item的动画,DefaultItemAnimator为默认的 recyclerView.setItemAnimator(new DefaultItemAnimator()); //4.设置适配器 recyclerView.setAdapter(adapter); //添加点击事件 adapter.setOnItemClickListener(new MyRecyclerViewAdapter.OnRecyclerItemClickListener() { @Override public void onItemClick(View view, int position) { //Toast.makeText(MainActivity.this,"单击了:"+mDatas.get(position),Toast.LENGTH_SHORT).show(); adapter.addItem(position,"添加的内容"); Log.i("tag", "onItemClick: "+position); Log.i("tag", "集合: "+mDatas.toString()); } }); //设置长按事件 adapter.setOnItemLongClickListener(new MyRecyclerViewAdapter.onRecyclerItemLongClickListener() { @Override public void onItemLongClick(View view, int position) { //Toast.makeText(MainActivity.this,"长按了:"+mDatas.get(position),Toast.LENGTH_SHORT).show(); adapter.removeItem(position); Log.i("tag", "onItemLongClick: "+position); Log.i("tag", "集合: "+mDatas.toString()); } }); } //初始化数据 protected void initData(){ mDatas = new ArrayList<String>(); for (int i = 'A'; i < 'z'; i++){ mDatas.add("" + (char) i); } } }
RecyclerView实现的瀑布流效果
猜你喜欢
转载自www.cnblogs.com/sunjian43792901/p/11130605.html
今日推荐
周排行