• 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。我们研究它,就是回味和知道我们很多年前调用这些方法时,当时很方便,现在只是学习一下,设计一个导航栏当时谷歌开发者的设计思想,这才是我们要学习的武功路数。

  • 相关阅读:
    DC 交换机 buffer 的平方反比律
    如何实现MySQL的增删改查
    linux驱动开发:linux设备模型
    数据库产生“死锁”
    2022最新前端vue面试题
    被一个问题卡了近两天,下班后我哭了。。。
    【C++】类的声明 与 类的实现 分开 ① ( 类的声明 与 类的实现 常用用法 | Visual Studio 2019 中创建类的头文件和源文件 | 确保头文件包含一次 )
    枚举&包装类
    记录发生同一个实体用在多个不同的controller接口展示不同的字段报空指针的问题。
    第十一章-用户进程
  • 原文地址:https://blog.csdn.net/gkkk_1/article/details/128138807