Android 快速开发(一),封装一个 TopBarBaseActivity
来源:互联网 发布:java ee书籍 编辑:程序博客网 时间:2024/06/09 19:06
Android 快速开发(一),封装一个 TopBarBaseActivity
本文作者
本文由陈铭卓投稿。
陈铭卓的博客地址:
https://blog.ifmvo.cn
什么是快速开发嘞,看这个效果
然而我只用了这么几行代码:
activity_main.xml 里面什么也没有!
其实说白了哈,就是我把 TopBar 封装在 TopBarBaseActivity 里面,然后 MainActivity 只需 继承 TopBarBaseActivity 即可。 你想一想,以后每个上面有 TopBar 的界面,只需 让你的 XXActivity extends TopBarBaseActivity,就可以随意的设置你的 TopBar 了,多爽啊!。
下面跟着我一步一步的实现我们想要的 TopBarBaseActivity。
开始
(1)依赖 appcompat-v7
新建一个项目,因为 Toolbar 是在 appcompat-v7 包下,所以确保已经依赖 appcompat-v7。
如果没有请加上,例如:
compile 'com.android.support:appcompat-v7:25.3.0'
(2)设置 NoActionBar 主题
由于我们使用 Toolbar 代替 ActionBar,所以先把 ActionBar 去掉,我们通过设置 Application 的 theme 来隐藏,这样项目中所有的界面的 ActionBar 就都隐藏了。
先修改 style.xml 中的 AppTheme 继承自
Theme.AppCompat.Light.NoActionBar
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item></style>
(3)创建 TopBarBaseActivity
new 一个项目之后会默认创建一个 MainActivity.java 和 activity_main.xml ,然后我们再自己新建两个文件 TopBarBaseActivity.java 和 activity_base_top_bar.xml
然后 TopBarBaseActivity 继承 AppCompatActivity,MainActivity 继承 TopBarBaseActivity
(4)把 TopBar 封装在 TopBarBaseActivity
首先我们在 activity_base_top_bar.xml 中 添加 Toolbar,然后在 TopBarBaseActivity 中获取并初始化设置 Toolbar
注意:为了设置两个抽象方法,我们将 TopBarBaseActivity 设置成了抽象类。
接下来让我们的 MainActivity 自动实现两个父类的抽象方法、删掉 onCreate 方法,并通过 getContentView 方法返回布局 activity_main 的 id。
现在你运行一下项目,我们并没有在 MainActivity 的布局中添加 ToolBar,但是运行出来的效果是 Toolbar 已经存在了。
(5)实现一句话添加标题
接下来我们要实现在 MainActivity 里面 setTitle(“标题”);一句话设置标题。
首先我们修改 activity_base_top_bar.xml 布局文件,在 Toolbar 中添加一个 TextView 用来显示标题
再修改 TopBarBaseActivity 添加一个 setTitle 方法
然后我们就可以在 MainActivity 中调用了 setTitle 方法了
(6)实现一句话添加左上角按钮
接下来我们的目标是通过在 MainActivity 中 一句话 实现自定义 TopBar 左上角的 图标 和 点击监听
首先修改 TopBarBaseActivity, 我们需要造一个接口并声明
接下来我们就可以在 MainActivity 中这样写
运行一下试试是不是只需一句话就设置了 TopBar 左按钮的 图标 和 点击事件 !
(7)实现一句话添加右上角按钮
先创建一个 menu 文件夹和一个 menu 资源文件
内容是这样的:
现在我们再 MainActivity 调用 setTopRightButton 方法的姿势是这样的
现在运行看下效果
到这里我们的 TopBarBaseActivity 就封装完了,过程比较简单,重要的是这个封装的思路,其实还有很多我们常用的布局都是可以进行封装的。
最后
可能有些人还会有些疑问:为什么要用 ToolBar 进行封装呢,自己写一个 TopBar 不是更好吗?
是的,如果你用不惯 Toolbar 你就可以根据自己的习惯写一个扩展性更好的 TopBar。但是我觉得 Toolbar 其实也有一些优质的特点的:
官方提供,符合标准,界面统一。
自带点击效果。
自带点击热区。
接下来,我可能还会继续封装一些常用的 BaseActivity 。
Demo GitHub 地址
https://github.com/ifmvo/MatthewBases
无论你是有 Java 基础希望学 Android 开发的程序员,还是想进一步提升能力的 Android 开发者,都可以在这个Udacity & Google 官方参与制作 的课程项目中找到适合自己的成长路径!
*独家硅谷技术课程
*行业领导者设计的实战项目
*一对一学习辅导
*名企颁发学习认证
*毕业直达滴滴面试
如果你有想学习的文章直接留言,我会整理征稿。如果你有好的文章想和大家分享欢迎投稿,直接向我投递文章链接即可。
欢迎长按下图->识别图中二维码或者扫一扫关注我的公众号:
赞赏
长按二维码向我转账
受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。
微信扫一扫
关注该公众号
<script nonce="310624551">var __DEBUGINFO = { debug_js : "//res.wx.qq.com/mmbizwap/zh_CN/htmledition/js/biz_wap/debug/console34c264.js", safe_js : "//res.wx.qq.com/mmbizwap/zh_CN/htmledition/js/biz_wap/safe/moonsafe34c264.js", res_list: []};
(function() { function _addVConsole(uri) { var url = '//res.wx.qq.com/mmbizwap/zh_CN/htmledition/js/vconsole/' + uri; document.write('- Android 快速开发(一),封装一个 TopBarBaseActivity
- Android 快速开发(一),封装一个 TopBarBaseActivity
- 封装TopBarBaseActivity
- Android 快速开发(二),封装一个 BottomTabBaseActivity
- Android-应用开发-快速入门(一)
- Android快速开发OrmLite数据库封装详解
- Android快速开发之封装标题栏
- android SDK开发 -- TitleBar封装(一)
- Android快速开发(一)——绝不走弯路,存档
- 看我是如何快速学习android开发的(一)
- 如何快速学习android开发的(一)
- Android-快速开发框架2017-持续更新(一)。
- android开发游记:封装http请求,快速实现网络加载
- 自己写一个快速开发android模板
- 快速开发封装精简版
- 如何写一个不会被系统自动 kill 的程序(android开发)(已封装)
- 一个封装android开发常用控件的库
- 上门洗车APP --- Android客户端开发 之 网络框架封装介绍(一)
- Jedis测试异常:connect timed out
- ACE的Task框架
- 第一个Tensorflow程序
- 带你玩转Visual Studio——带你高效开发--番茄助手使用
- Ubuntu分区小知识与分区方案
- Android 快速开发(一),封装一个 TopBarBaseActivity
- Directx11教程四十二下之进行骨骼动画的渲染
- 关于诚实
- notifyDataSetChanged()无效原因
- RubyGems--转载
- 感知过程
- id name class
- Django02-基本命令
- 隐藏百度地图的缩放按钮