上班第四周

2020-05-31  本文已影响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

支持功能

注意如果创建一个新的模块,没有模块没有对应的分支的话,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的作用

上一篇下一篇

猜你喜欢

热点阅读