• 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。

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

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

    设置title和副标题

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

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

    1. public abstract boolean isShowing();
    2. public abstract void hide();
    3. public abstract void show();

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

  • 相关阅读:
    自己在家给电脑重装系统Win10教程
    RL强化学习总结(一)
    flink核心思想
    【实习之velocity 三 Vtl-引入资源】
    android 判断是否打开了蓝牙网络共享
    高并发场景QPS等专业指标揭秘大全与调优实战
    职场必备两款高效率管理工具,大有用处!
    oracle 解锁表
    基于JAVA疫情物资商城和疫情数据可视化系统设计与实现 开题报告
    调用华为API实现身份证识别
  • 原文地址:https://blog.csdn.net/gkkk_1/article/details/128138807