本文主要是介绍SortedList在神马笔记中的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SortedList在神马笔记中的应用
- 一、界面的层次结构
- 二、实现效果
- 三、代码层次结构
- 四、职责定义
- 五、下载地址
一、界面的层次结构
神马笔记有5个界面用于展示笔记/文件夹内容,分别为
- 文件夹(相同文件夹内的笔记及子文件夹)
- 搜索(同一关键子的笔记及文件夹)
- 最近项目(最近访问的笔记,不包括文件夹)
- 最近删除(最近删除的笔记及文件夹)
- 标签(同一标签的笔记及文件夹)
笔记及文件夹在神马笔记中统一称为记录,一条记录即表示一条笔记或者一个文件夹。记录支持5种排序方式,分别为:
- 名称
- 创建日期
- 修改日期(仅用于最近项目)
- 大小
- 标签
基于对笔记/文件夹排序的需求,使用SortedList
作为记录的容器再合适不过。我们只需要提供记录的比较结果,`SortedList即可完成排序。
二、实现效果
三、代码层次结构
首先,存在5个具体的功能界面,定义5个具体的Fragment
- 文件夹(FolderRecordFragment)
- 搜索(SearchRecordFragment)
- 最近项目(RecentRecordFragment)
- 最近删除(TrashRecordFragment)
- 标签(TagRecordFragment)
其次,5个具体的功能界面使用了2种不同的排序方式,为2种排序方式定义2个Fragment
- 名称方式(NamedRecordListFragment):名称、创建日期、大小、标签
- 标签方式(TabbedRecordListFragment):名称、修改日期
再来,无论何种排序方式,都需要显示笔记/文件夹的列表,定义基类的Fragment
- BaseRecordListFragment
最终的类层次结构为
BaseRecordListFragment
|---- NamedRecordListFragment
| |---- FolderRecordFragment
| | |---- TrashRecordFragment
| |---- SearchRecordFragment
| |---- TagRecordFragment
|---- TabbedRecordListFragment
|---- RecentRecordFragment
其中*RecordListFragment
为抽象类,不能进行实例化。
四、职责定义
-
核心功能
- BaseRecordListFragment
多级文件夹管理的核心功能类,所有记录的操作及显示均由BaseRecordListFragment来完成,其重要程度及复杂度与编辑器的核心功能类
ComposeArticleFragment
不相上下。 -
排序功能
- NamedRecordListFragment
- TabbedRecordListFragment
这2个类提供了2种不同的排序方式,Named支持4种排序方式,Tabbed支持2种排序方式,并且排序的交互方式也不相同,故而定义2个不同的Fragment来实现。
-
具体功能
- FolderRecordFragment
- SearchRecordFragment
- RecentRecordFragment
- TrashRecordFragment
- TagRecordFragment
其中,Trash继承自Folder,因为设计上Trash是一个特殊的文件夹,是Folder的一个特例,故而继承之。这5个具体的类,为BaseRecordListFragment提供具体的数据,及响应BaseRecordListFragment的操作。
五、下载地址
神马笔记最新版本:【whatsnote_lastest.apk】
这篇关于SortedList在神马笔记中的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!