FrameWork之旅 -- Activity过去的门面ActionBar

本系列的阅读,前提你是一个Android开发者,而且是一个app开发,并且有一定的工作经验。本系列的学习,不会每个细节都说明,会把有“看点”的地方加以说明。

如果你不是Android开发,但是对这个actionbar想有个大概的印象,看看这个极光推送-感受下极光推送的效果_gkkk_1的博客-CSDN博客

的Jush SDK demo就是一个actionbar了。

actionbar作为一个刚开始作为标题栏的存在,现在慢慢充当越来越多元化的角色,当然你也可以隐藏不使用它。现在更多的使用ToolBar替代ActionBar,ToolBar显然更加灵活,并且是个Material Design 风格的导航控件。当然我们是来研究Framework的,如果只是介绍这个actionbar的功能,那就是app教程了,我们还是要看看它的源码的。

ActionBar作为一个抽象类,我们就关注它的抽象方法,主要是从这些方法知道设计一个actionbar需要考虑使用什么功能。

public abstract void setCustomView(View view);

actionbar就是个视图容器,这里这个setCustomView明显就是用来给自己填充View视图的入口。

public abstract void setCustomView(View view, LayoutParams layoutParams);

如果上面就是生硬的默认加载进来一个图,这个就是加载进来,并且可以指定布局规则的一个布局参数。

public abstract void setCustomView(@LayoutRes int resId);

如果说第二个你觉得太棒了,那就高兴太早了,这个方法明显更加的smart,它允许你在家做homework,然后整体提交给我,我给展示的平台,给你充分的发挥的空间。直接引用布局id来加载布局。

public abstract void setIcon(@DrawableRes int resId);
public abstract void setIcon(Drawable icon);

actionbar不止只有“标题”,还有更拉风的

极光推送-感受下极光推送的效果_gkkk_1的博客-CSDN博客

Jush SDK demo左侧个性化的logo。

public abstract void setListNavigationCallbacks(SpinnerAdapter adapter,
            OnNavigationListener callback);

adapter为下拉菜单的适配器,callback是在这个回调中定义当用户选择列表中一个项目时所发生的行为

设置title和副标题

public abstract void setTitle(CharSequence title);
public abstract void setSubtitle(CharSequence subtitle);

控制显示隐藏、判断、是否可见

public abstract boolean isShowing();

public abstract void hide();

public abstract void show();

剩余的一些抽象方法我们不在列举了,由于ActionBar时至今日,已是昨日黄花了,作为曾经的activity的门面,今日已经不在辉煌,等它的只有超大的deprecated。我们研究它,就是回味和知道我们很多年前调用这些方法时,当时很方便,现在只是学习一下,设计一个导航栏当时谷歌开发者的设计思想,这才是我们要学习的武功路数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值