美文网首页
上班第四周

上班第四周

作者: 寒冬_腊月 | 来源:发表于2020-05-31 22:38 被阅读0次

    任务

    1. 修复项目WebView不能显示html代码的问题
    2. 开始提问和运营账号主页需求

    修复项目WebView不能显示html代码的问题

    测试在后台配制了一段描述信息,发现app这边显示不出来,iOS可以正常显示,尴尬了。。。

    问了一下测试,怎么去后台配制数据,刚好也可以熟悉一下测试数据的本配制过程,然后知道是在哪个界面显示不出来,因为还对项目的代码不是很熟悉,发现一个很方便的办法:这里使用Android Studio工具Tools -> Layout Inspector,查看当前界面对应的代码,完美

    选中相关的包名


    image

    查看对应的Activity, 最下面一个就是当前展示的Activity


    image

    查看对应的代码,项目是调用腾讯的WebView来替换原生的WebView, 使用loadData来加载html代码

    image

    断点单步调试代码,发现问题出在这里

    image

    当使用loadData加载html代码的时候,url是以data开头的,这里没有添加对应的判断导致使用view.stopLoading()停止加载了,添加对应的判断就可以解决

    开始提问和运营账号主页需求

    来公司半个多月,终于开始接触项目功能需求了,说一下我们公司的流程和用的工具

    首页还是和我上一家公司一样是使用的jira来管理需求的,相比来说不用去评一个需求的工时,只需要填一下完成时间,而PM会控制这个时间,会要求在什么时候完成,个人觉得还是可以的,之前的公司过多的去关注工时,通过这个来评员工的工作饱和度,后面导致我们评工时的时候都会评很多,后面还是被领导说我们移动组工作不饱和,难受。。。

    然后设计使用的是蓝湖,这个用的还是挺顺手的,接口使用的Java, 接口文档管理使用的Swagger

    公司同事自己开发了个项目组件化管理工具,进行项目组件化管理

    modularization

    支持功能

    • 组件代码按需导入和自动下载管理
    • 一键快速发布组件到指定仓库,其他协作者无感知即可快速集成最新组件
    • 实现仓库组件和本地代码依赖的无缝切换,方便组件间协调开发
    • 支持所有组件工程多git工程批量进行git操作,包含checkout, merge, branch等操作
    • 组件无需修改任何配置,通过插件直接快速运行. 既是模块也是app类型
    • 组件支持分离api模块层,支持只对外暴露api层,业务实现层完全封闭, 从框架层彻底隔离组件,防止相互交叉引用

    注意如果创建一个新的模块,没有模块没有对应的分支的话,Android Studio默认会自动切换到master分支,一开始还以为工程的git配制出问题了,所以创建新的模块的时候,要创建相应的分支

    下面是这几天做的成果,接口还没有给数据过来,自己只能模拟一些数据放上去

    image image image

    总结

    1. Android颜色值透明度换算
      例如 #CCFF0000 对应的透明度就是80%: 255*0.8 = 204, 204对应的十六进制刚好是CC,下面是常见的透明度对应列表
    80% — CC
    50% — 80
    30% — 4D
    20% — 33
    10% — 1A
    
    
    1. 多个EditText设置同一个TextWatcher,然后在方法回调的时候怎么区分,网上找了一个方法,使用hashCode来对应
    private TextWatcher generalTextWatcher = new TextWatcher() {   
        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
    
            if (myEditText1.getText().hashCode() == s.hashCode())
            {
                myEditText1_onTextChanged(s, start, before, count);
            }
            else if (myEditText2.getText().hashCode() == s.hashCode())
            {
                myEditText2_onTextChanged(s, start, before, count);
            }
        }
    
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
    
            if (myEditText1.getText().hashCode() == s.hashCode())
            {
                myEditText1_beforeTextChanged(s, start, count, after);
            }
            else if (myEditText2.getText().hashCode() == s.hashCode())
            {
                myEditText2_beforeTextChanged(s, start, count, after);
            }
        }
    
        @Override
        public void afterTextChanged(Editable s) {
            if (myEditText1.getText().hashCode() == s.hashCode())
            {
                myEditText1_afterTextChanged(s);
            }
            else if (myEditText2.getText().hashCode() == s.hashCode())
            {
                myEditText2_afterTextChanged(s);
            }
        }
    
    };
    
    
    1. 使用match.find正则配制多个字符串
    2. 安装FindViewByMe插件快速生成findViewById
    3. 设置layout_alignBaseline基准线对齐,不同文字大小TextView不能在统一水平线上
    4. 设置app:tabIndicator改变TabLayout下面indicator样式,例如宽度
    5. windowSoftInputMode键盘模式adjustResize和adjustPan区别
      adjusetResize会调整contentView的大小
    6. serialVersionUID的作用
      Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。(InvalidCastException)

    serialVersionUID会默认生成,也可以自己定义一个名为serialVersionUID,类型为long的变量(根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段)

    参考

    How to make a background 20% transparent on Android

    TextWatcher for more than one EditText

    关于Android改变TabLayout 下划线(Indicator)宽度

    Android 软键盘之 windowSoftInputMode 分析

    serialVersionUID的作用

    相关文章

      网友评论

          本文标题:上班第四周

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