美文网首页安卓开发博客最近需要做的移动知识
Android快速开发架构PlanA(一),船新版本的BaseA

Android快速开发架构PlanA(一),船新版本的BaseA

作者: Alt丶 | 来源:发表于2018-07-12 12:48 被阅读425次

    Android快速开发架构PlanA,一周一个APP,持续维护中!
    Android快速开发架构PlanA(一),船新版本的BaseActivity
    Android快速开发架构PlanA(二),简单粗暴的路由管理PRouter
    Android快速开发架构PlanA(三),你一定会用上的工具类
    Android快速开发架构PlanA(四),网络请求篇,划重点(必考)
    Android快速开发架构PlanA(五),文件上传下载了解一下
    Android快速开发架构PlanA(六),抱歉,这些自定义控件真的可以让你为所欲为
    Android快速开发架构PlanA(七),隐藏技能:PhotoBrowse图片浏览
    Android快速开发架构PlanA(八),手滑搞了个万能适配器CommonAdapter

    1.BaseActivity的使用

      PlanA架构集成第一篇,BaseActivity的使用,在Android开发中,几乎都要用到Activity基类,基类可以做很多事情,从而在子Activity中不需要做太多繁杂的事情,只需要继成就行了,本篇讲述的就是PlanA中BaseActivity的相关方法封装,减少开发者大部分的代码量,为外部提供方便快捷的实现法则。

    2.BaseActivity(继承)

    • 可事先新建一个MyBaseActivity类用于ButterKnife注解、状态栏、标题栏颜色等统一管理再集成BaseActivity,如果新建了MyBaseActivity的话,别忘了也要新增两个抽象方法来覆盖BaseActivity中的那俩抽象方法哦,可以附上个简单的快照,仅供参考!

      public abstract class MyBaseActivity extends BaseActivity {
      
          public abstract int getLayoutResId();
          public abstract void initView(Bundle var1);
      
          @Override
          public int getContentViewResId() {
              return getLayoutResId();
          }
      
          @Override
          public void init(Bundle savedInstanceState) {
              initView(savedInstanceState);
          }
      }
      
    •   public class TestActivity extends MyBaseActivity {
            @Override
            public int getLayoutResId() {
                return R.layout.activity_test;
            }
      
            @Override
            public void initView(Bundle var1) {
                setTitle("MyBaseActivity实例");
            }
        }
      
      • BaseFragment与BaseActivity基本一致,只是不包含TitleBar的相关操作

      • 开启菊花加载模态窗 showDialog();

      菊花加载弹窗.jpg
    • 关闭菊花加载模态窗 closeDialog();

    • TitleBar仅支持根布局为线性布局和相对布局,且相对布局时需要设置正文的上边距(50dp,即TitleBar的高度)

    • 隐藏标题栏 hideTitleBar();

    • 隐藏返回icon hideEsc();

    • 设置标题 setTitle(Object title); title参数为String或int(String引用)

    • 标题栏显示更多icon showMore(OnTitleBarListener onTitleBarListener); 参数为点击回调接口,位于BaseActivity

    • 替换标题栏更多icon replaceMoreIcon(int iconId); 参数为新icon的id引用

    Screenshot_20180706-112834.jpg
    • 设置标题栏背景颜色 setTitleBarBg(color); 参数为int颜色值

    • 设置返回icon setEscIcon(icon);

    • 设置标题颜色 setTitleTextColor(color);

    • 设置标题字体大小 setTitleTextSize(textSizeSP);

    • 获取返回icon getEscIcon();

    • 获取标题控件 getTitleView();

    • 获取更多icon getMoreIcon();

    • 获取标题栏 getRlTitleBar();

    • 获取ViewDataBinding getViewDataBinding(); 获取的实例为ViewDataBinding 需要强转

    • setIsShowStatusBar(isShow); 是否显示状态栏,true:恢复状态栏位置并默认背景色,false:隐藏状态栏并使布局顶上去

    隐藏状态栏.jpg
    • setStatusBarColor(color); 设置状态栏颜色(沉浸式)
    设置状态栏颜色&沉浸式.jpg
    • setStatusBarColor(color,alpha); 设置状态栏颜色,alpha为透明度

    • 6.0+权限请求,requestPermission(permissions,code) 所请求的权限别忘了在Manifest里注册

    • 权限请求回调,权限请求成功回调接口:permissionSucceed 权限请求失败回调接口:permissionFailing

    相关文章

      网友评论

      • 有点健忘:很少弄这么多,一般也就一个后退键,一个标题,如果右侧需要按钮,就用menu了。对我们来说大部分标题颜色字体都一个样,我都直接include一个写好的布局,base里也就提供一个方法修改标题,真有特殊需求,反正id都在那,它自己单独处理就好了。差别太大的,换个include。不知道有没有和我一样的
        Alt丶:@有点健忘 继承BaseActivity的话,不需要include什么的,基类会自动注入标题栏,并且提供较为全面的外部接口。
      • normidar:沉浸式在切换标头时会很奇怪的
        Alt丶:@normidar 在显示和隐藏状态栏的时候能够隐约看到么!

      本文标题:Android快速开发架构PlanA(一),船新版本的BaseA

      本文链接:https://www.haomeiwen.com/subject/orgpuftx.html