Android 7.0 Gallery图库源码分析7 - ActionBar下拉导航及根据标签进行分类
2017-04-21 10:02
627 查看
转载请注明出处: http://blog.csdn.net/lb377463323/article/details/70308541
adapter在Gallery用的是ClusterAdapter,也就是控制下拉导航显示的内容,自己看下代码很容易理解。对于Adapter的话,写过ListView的一个很熟悉,这里不多讲了。
OnNavigationListener是一个接口,需要实现onNavigationItemSelected方法,这个方法用来处理下拉导航的点击事件。下面开始细讲这个方法。
在onNavigationItemSelected方法中通过doCluster进行分类
AlbumSetPage实现了ClusterRunner接口,所以mClusterRunner实际上就是AlbumSetPage。下面看下doCluster方法,这是执行分类的实现。
切换页面是从AlbumSetPage切换到AlbumSetPage,只不过里面的数据变了而已。data封装了两条数据,AlbumSetPage.KEY_MEDIA_PATH是”/cluster/{/combo/{/local/all,picasa/all}}/face”,KEY_SELECTED_CLUSTER_TYPE是32
之后的过程跟分析3一样,只不过路径和数据源变一下。http://blog.csdn.net/lb377463323/article/details/69569133“>Android 7.0 Gallery源码分析3 - 数据准备以及加载流程
ActionBar实现下拉导航
Gallery中使用下拉导航显示可分类的标签,默认分为相册、地点、时间、人物和标签等,实现此下拉导航只需要实现如下代码://AbstractGalleryActivity类 public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); //这里是对每个页面创建菜单栏 return getStateManager().createOptionsMenu(menu); } //StateManager类 public boolean createOptionsMenu(Menu menu) { ...... return getTopState().onCreateActionBar(menu); } //AlbumSetPage类 protected boolean onCreateActionBar(Menu menu) { //这里就是显示分类菜单的下拉导航,mActionBar即为GalleryActionBar mActionBar.enableClusterMenu(mSelectedAction, this); }
//这个方法就是下拉导航的具体实现 public void enableClusterMenu(int action, ClusterRunner runner) { mActionBar.setListNavigationCallbacks(SpinnerAdapter adapter, OnNavigationListener callback); mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); //选中指定位置的导航项,也就是默认显示哪一个导航项 setSelectedAction(action); mClusterRunner = runner; }
adapter在Gallery用的是ClusterAdapter,也就是控制下拉导航显示的内容,自己看下代码很容易理解。对于Adapter的话,写过ListView的一个很熟悉,这里不多讲了。
OnNavigationListener是一个接口,需要实现onNavigationItemSelected方法,这个方法用来处理下拉导航的点击事件。下面开始细讲这个方法。
根据标签进行分类
Gallery点击下拉导航一共有相册、地点、时间、任务和标签,下面就只分析根据任务进行分类。在onNavigationItemSelected方法中通过doCluster进行分类
mClusterRunner.doCluster(sClusterItems[itemPosition].action);
AlbumSetPage实现了ClusterRunner接口,所以mClusterRunner实际上就是AlbumSetPage。下面看下doCluster方法,这是执行分类的实现。
data.putString(AlbumSetPage.KEY_MEDIA_PATH, newPath); data.putInt(KEY_SELECTED_CLUSTER_TYPE, clusterType); //通过StateManager切换页面 mActivity.getStateManager().switchState(this, AlbumSetPage.class, data);
切换页面是从AlbumSetPage切换到AlbumSetPage,只不过里面的数据变了而已。data封装了两条数据,AlbumSetPage.KEY_MEDIA_PATH是”/cluster/{/combo/{/local/all,picasa/all}}/face”,KEY_SELECTED_CLUSTER_TYPE是32
之后的过程跟分析3一样,只不过路径和数据源变一下。http://blog.csdn.net/lb377463323/article/details/69569133“>Android 7.0 Gallery源码分析3 - 数据准备以及加载流程
相关文章推荐
- Android 7.0 Gallery图库源码分析9 - 竖向显示布局
- Android 7.0 Gallery图库源码分析8 - 加载专辑缩略图
- Android 7.0 Gallery图库源码分析3 - 数据加载及显示流程
- Android 7.0 Gallery图库源码分析2 - 分析启动流程
- Android 7.0 Gallery图库源码分析5 - Menu(菜单栏)显示
- 详解Android ActionBar之二:ActionBar添加Tabs标签和下拉导航
- Android 7.0 Gallery图库源码分析6 - 完成界面渲染
- Android 7.0 Gallery图库源码分析4 - SlotView手势监听及页面跳转
- Android 7.0 Gallery图库源码分析1 - 初识Gallery源码
- 【Android UI设计与开发】第11期:顶部标题栏(二)ActionBar实现Tab选项卡和下拉导航列表
- 详解Android ActionBar之二:ActionBar添加Tabs标签和下拉导航
- AndroidUI组件之ActionBar--基于下拉的导航方式
- 【Android UI设计与开发】第11期:顶部标题栏(二)ActionBar实现Tab选项卡和下拉导航列表
- 【Android UI设计与开发】第11期:顶部标题栏(二)ActionBar实现Tab选项卡和下拉导航列表
- 【Android UI设计与开发】第11期:顶部标题栏(二)ActionBar实现Tab选项卡和下拉导航列表
- 【Android UI设计与开发】第11期:顶部标题栏(二)ActionBar实现Tab选项卡和下拉导航列表
- 【Android UI设计与开发】第11期:顶部标题栏(二)ActionBar实现Tab选项卡和下拉导航列表
- AndroidUI组件之ActionBar--基于下拉的导航方式
- 子墨庖丁Android的ActionBar源码分析 (一)实例化
- 【Android UI设计与开发】第11期:顶部标题栏(二)ActionBar实现Tab选项卡和下拉导航列表