1. 代码优化
(1)定义变量要时刻注意作用域。如果一个变量只在一个方法中使用,那就不需要设为全局变量,设为方法内的局部变量即可。
(2)代码简洁。
1,首先就是不创建无用的变量,例如View view=binding.getroot();return view; 如果这里view使用很少,甚至只有一次,那就没有创建的意义,浪费资源。直接return binding.getroot();。
2,删除废代码(注释了的代码,多余的注释),使得代码美观
3,变量命名规范,驼峰命名法,且名称不宜过长
4,!!!代码格式化,缩进需要规范。ctrl+alt+l 快捷键
2,bug解决
(1)ViewStub的视图绑定与显示
ViseStub viewStub = binding.viewStub.inflate();
viewStubBinding=CodeBinding.bind(viewstub);//这样,子布局的binding就可以用了
viewstub.setVisibility(View.VISIBLE);//源码中就是该句漏写,即使绑定,需要自己定义GONE or VISVLE
(2)销毁地图时,fragmnet与activity生命周期不同导致空指针。
主要问题是 在fragment的destoryview中 binding=null;但在destory方法中,
出现了if(binding.map!=null)
binding.map.destory;
修改为
if(binding!=null)
binding.map.destory;.destory;
(3).constraint.ConstraintLayout布局的百分比布局要点
1,因为锚点没有设置完整,导致整个布局重新计算会,导致卡帧.所以锚点必须设置完整(不是四个方向锚点都要设置,而是锚点设置后,控件位置能够确定)。
2,在约束布局中,wrap_content与0dp的区别:
wrap_content:以内容的长度为准,一些比例属性会失效。
0dp:以控件的长度为准。将layout_width或者layout_height设为0dp,让子View没有长度。这样便可以随着父View进入拉伸了,有多个子控件,那就设置weight,来占比
额外:match_parent:不再赘述
百分比布局:能够做到简单的适配(大小随屏幕大小变化而变化)
layout_constraintVertical_bias:垂直乖离率(bias有道翻译为乖离率),也就是垂直偏移率。
layout_constraintHorizontal_bias:水平乖离率(bias有道翻译为乖离率),也就是水平偏移率。
layout_constraintHeight_percent:高度百分比,占父类高度的百分比
layout_constraintWidth_percent:宽度百分比,占父类宽度的百分比
参考:
https://blog.csdn.net/fy993912_chris/article/details/81909010
个人认为,ui设计中,控件宽度和高度尽量使用上述四种来实现,大小不能写死,对适配不利。即使是constraint布局的锚点,也尽量使用偏离率,而不是具体数值