Material Design之RecyclerView的使用(一)

public class MainActivity extends AppCompatActivity {private Toolbar mToolbar;private RecyclerView mRecyclerView;private List<String> lists;private MyAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mToolbar = (Toolbar)this.findViewById(R.id.toolbar);setSupportActionBar(mToolbar);initData();mRecyclerView = (RecyclerView) this.findViewById(R.id.recyclerView);//mRecyclerView.setHasFixedSize(true);//如果可以确定每个item的高度是固定的,,设置这个选项可以提高性能mRecyclerView.setLayoutManager(new LinearLayoutManager(this));//设置RecyclerView的布局管理//mRecyclerView.addItemDecoration();//设置RecyclerView中item的分割线,用的少,一般都用在item中设置margin分隔两个itemmRecyclerView.setItemAnimator(new DefaultItemAnimator());//设置item的添加删除动画,采用默认的动画效果adapter = new MyAdapter(this,lists);mRecyclerView.setAdapter(adapter);//设置Adapteradapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {//添加监听器@Overridepublic void onItemClick(View view, int postion) {Toast.makeText(MainActivity.this,"点击的是:"+postion,Toast.LENGTH_SHORT).show();}@Overridepublic void onItemLongClick(View view, int postion) {Toast.makeText(MainActivity.this, "长按的是:" + postion, Toast.LENGTH_SHORT).show();}});}private void initData(){lists = new ArrayList<String>();for (int i = 'A'; i < 'z'; i++){lists.add(""+(char)i);}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.menu_main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {int id = item.getItemId();switch (id){case R.id.action_add:lists.add(1, "add");//adapter.notifyDataSetChanged();//用这个则可以更新数据,但是没有动画效果adapter.notifyItemInserted(1);//注意:RecyclerView中添加用notifyItemInserted();才有动画效果break;case R.id.action_delete:lists.remove(1);adapter.notifyItemRemoved(1);//RecyclerView中删除用notifyItemRemoved();才有动画效果break;case R.id.action_linear:mRecyclerView.setLayoutManager(new LinearLayoutManager(this));//设置RecyclerView的GridLayoutManager布局管理,默认垂直,还有一个设置水平排列的构造方法break;case R.id.action_grid:mRecyclerView.setLayoutManager(new GridLayoutManager(this,3));//设置RecyclerView的GridLayoutManager布局管理,默认为垂直break;case R.id.action_grid_horizontal:mRecyclerView.setLayoutManager(new GridLayoutManager(this,3,GridLayoutManager.HORIZONTAL,false));//设置RecyclerView的GridLayoutManager的水平布局管理,参数分别为context,列数或行数,排列方式,是否反转布局的内容break;case R.id.action_staggeredgrid:mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));//设置RecyclerView的StaggeredGridLayoutManager的布局管理,它是GridLayout升级版,可以显示交错式网格布局,参数分别为列数或行数,排列方式break;}return super.onOptionsItemSelected(item);}}【注意】:使用ToolBar时,必须在styles.xml中设置当前Activity使用的style风格为NoActionBar。如果想改变状态栏的背景色,则需要在style中定义item,name="colorPrimaryDark",仅支持Android5.x。

对于旅行,从来都记忆模糊。记不得都去了哪些地方,

Material Design之RecyclerView的使用(一)

相关文章:

你感兴趣的文章:

标签云: