电子书阅读器上的浏览器 [Day06] 增加翻页按钮和分页数字资讯在工具列

新增翻页按钮

browser 画面下方的工具列其实还蛮空旷的,应该可以多塞点功能进来。与其用手势滑动来翻页,倒不如在工具列上加两个按钮,一个向上翻页,一个向下翻页。对於寸土寸金的萤幕空间来说,善用画面空间也是很重要的。

为了要加上按钮,必须先新增想要的图案、修改 xml 档案,然後在 BrowserActivity.java 中实作相关的功能。

新增想要的图案

https://ithelp.ithome.com.tw/upload/images/20210903/20140260XhfJEv8qBZ.png

利用 Android Studio 中的 Vector Asset 视窗(可以双击 shift 键,然後输入 vector asset) ,可以快速选取 Material 的 Clip Art,然後将其储存为 vector drawable xml 档。

https://ithelp.ithome.com.tw/upload/images/20210903/20140260LF0yObOUBv.png

修改 xml 档案

在 activity_main.xml 中,加入新的 ImageButton (以 page down 按钮为例):

https://ithelp.ithome.com.tw/upload/images/20210903/20140260CFGkhuLvdC.png

连结翻页功能

最後,在 BrowserActivity.java 中找到处理 ImageButton 点击事件的区块,把这几个按钮的功能加进去。

https://ithelp.ithome.com.tw/upload/images/20210903/20140260nNM8NbVNag.png

加上长按的功能

既然加了按钮,自然希望它能提供更多功能。所以,对於翻页的按键,又额外加了长按的功能,可以快速回到网页的最顶端,或是最底部。这功能对於在浏览 Facebook 网页内容时,特别好用。

https://ithelp.ithome.com.tw/upload/images/20210903/20140260xa3uKhA9fI.png

修改分页按钮,增加分页数字

原本的分页按钮点击後会显示目前有开启的分页。虽然还算好用,但在浏览时,有时会希望能够直接知道目前开了多少分页,不用再点进去。

这里采用的作法是最简单的方式,把 ImageButton 的图换成一个方框,然後在它上面再叠上一个 TextView 。虽然这作法很丑,但可以很快地达成这个功能。(後来有把这方式改掉,不过这里暂且不提)。一样是先新增图案,然後到 activity_main.xml 中修改:

https://ithelp.ithome.com.tw/upload/images/20210903/20140260ZVZmY1JrMq.png
https://ithelp.ithome.com.tw/upload/images/20210903/20140260JShMumflcl.png

最後,再到 BrowserActivity.java 中处理一下分页数字的更新逻辑:

https://ithelp.ithome.com.tw/upload/images/20210903/20140260Ux7yJOD6A7.png

Album 在 browser 中的意思就是分页。在 AddAlbum() 和 updateAlbum() 时,更新分页的数字,而分页的数字则是记录在 BrowserContainer 这个资料结构中。

最终,我们来看看完成的样子吧。

原本的工具列 修改後的工具列
https://ithelp.ithome.com.tw/upload/images/20210904/20140260kSKWXfiSiR.png https://ithelp.ithome.com.tw/upload/images/20210904/20140260Mc0g7ahnLk.png

https://ithelp.ithome.com.tw/upload/images/20210903/20140260rr3GeVqJcl.jpg

参考原始码版本

下一篇,我们再来谈谈怎样改善其他的 UI 元件。


<<:  Day6: [资料结构] -  Set

>>:  JAVA - Windows 10 建立 Maven 专案并执行

CompTIA Network+ 认证考试 N10-007 模拟测试 PDF 问题

几乎每个 CompTIA Network+ 专家都在努力获得 CompTIA N10-007 认证考...

再谈 Side project

前言 我始终鼓励所有人与团队建立执行 Side project 的习惯,它可以为我们带来许多好处,在...

Day 6【React】阿嬷你怎麽没感觉?

【前言】 终於来到第一个大魔王了,突然感觉自己很像在打怪。等到开始打 Boss 才发现:「Reac...

从 JavaScript 角度学 Python(20) - CSV

前言 前一章节简单的聊了一下 JSON 之後,接下来我想额外补充一个关於 CSV 档案处理的部分,而...

利用谷歌提供的插件彻底解决Chrome隐藏WWW和HTTPS问题

谷歌官方多年前推出可疑网址报告这个扩展程序,原本这个扩展程序是帮助用户检测恶意网站和反馈恶意网站的。...