任务
- 修复项目WebView不能显示html代码的问题
- 开始提问和运营账号主页需求
修复项目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
公司同事自己开发了个项目组件化管理工具,进行项目组件化管理
支持功能
- 组件代码按需导入和自动下载管理
- 一键快速发布组件到指定仓库,其他协作者无感知即可快速集成最新组件
- 实现仓库组件和本地代码依赖的无缝切换,方便组件间协调开发
- 支持所有组件工程多git工程批量进行git操作,包含checkout, merge, branch等操作
- 组件无需修改任何配置,通过插件直接快速运行. 既是模块也是app类型
- 组件支持分离api模块层,支持只对外暴露api层,业务实现层完全封闭, 从框架层彻底隔离组件,防止相互交叉引用
注意如果创建一个新的模块,没有模块没有对应的分支的话,Android Studio默认会自动切换到master分支,一开始还以为工程的git配制出问题了,所以创建新的模块的时候,要创建相应的分支
下面是这几天做的成果,接口还没有给数据过来,自己只能模拟一些数据放上去
image image image总结
- Android颜色值透明度换算
例如#CCFF0000
对应的透明度就是80%: 255*0.8 = 204, 204对应的十六进制刚好是CC,下面是常见的透明度对应列表
80% — CC
50% — 80
30% — 4D
20% — 33
10% — 1A
- 多个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);
}
}
};
- 使用match.find正则配制多个字符串
- 安装FindViewByMe插件快速生成findViewById
- 设置layout_alignBaseline基准线对齐,不同文字大小TextView不能在统一水平线上
- 设置app:tabIndicator改变TabLayout下面indicator样式,例如宽度
- windowSoftInputMode键盘模式adjustResize和adjustPan区别
adjusetResize会调整contentView的大小 - 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)宽度
网友评论