最近在研究android 开发的新控件,包括drawer layout ,NavigationView,CoordinatorLayout,AppBarLayout,Toolbar,TabLayout,SwipeRefreshLayout,Recyclerview等。
先上效果图:
主界面上drawlayou 和NavigationView形成抽屉效果,布局文件如下:
1 | <android.support.v4.widget.DrawerLayout |
java代码:抽屉部分
1 | drawerLayout = (DrawerLayout)findViewById(R.id.id_drawerlayout); |
可以给navigationview 设置点击事件:
1 | mNav.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { |
draw layout 和navigation view 组合可以写成非常好的抽屉效果,避免了第三方库,用原生的感觉非常棒。
----------抽屉部分结束-----------
tab layout 和view pager 实现联动效果:
1 | // 初始化ViewPager的适配器,并设置给它 |
RefreshLayout 实现下拉刷新效果:
布局文件:
1 | <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" |
在fragment 实现下拉刷新接口:
1 | public class DemoFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener{} |
mSwipeRefreshLayout实现下拉是的颜色变化,和设置监听事件。
1 | mSwipeRefreshLayout.setColorSchemeResources(R.color.main_blue_light, R.color.main_blue_dark); |
下拉刷新刷新数据的接口实现的方法:
1 | @Override |
---------下拉刷新结束----------
RecyclerView可以实现listview (横行和纵向).gridview(横行和纵向) ,瀑布流的效果。
我讲解一下最简单的效果:listview的效果:
直接上代码:
1 | mLayoutManager =new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); |
其中adapter 的写法:
1 | public class DemoRecyclerViewAdapter extends RecyclerView.Adapter<DemoRecyclerViewHolder> { |
adapter的写法根之前BaseAdapter 很类似,需要特别注意的是:
加载布局文件的方法一定是这个,要不然会出现match_parent 失效。
1 | View mView= LayoutInflater.from(context).inflate(R.layout.item_demo_adapter,parent,false); |
还有一些其他的控件如cardview 比较简单就不说了,toolbar的用法会在下次给出好的例子。
代码并不难,希望通过我这个例子,一是巩固自己的学习和理解,二是希望更多的人更好的学习,我会再接再厉,写更多的博文。