Skip to content

Commit b93f533

Browse files
committed
Update
1 parent 6a7afdb commit b93f533

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

CustomView/CustomViewRule.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,26 @@
1414

1515
由于某些情况很特殊,触发条件也特殊,我们简单的实现了一个自定义了一个 View,可能在 99% 的情况下都是正常的,但在某些特殊情况下就会出问题。
1616

17-
系统提供给我们的组件都是经过千锤百炼的,基本上考虑到了各种特殊情况的处理,所以通常情况下,系统提供给我们的组件稳定性要好一些。所以我的建议是,能使用系统提供的组件的尽量使用系统的。
17+
而系统提供给我们的组件都是经过千锤百炼的,基本上考虑到了各种特殊情况的处理,所以通常情况下,系统提供给我们的组件稳定性要好一些。所以我的建议是,能使用系统提供的组件的尽量使用系统的。
18+
19+
除此之外,使用系统提供的组件也方便于其他人快速读懂项目,便于交流。
1820

1921
#### 第二条:尽量避免从头开始。
2022

2123
如果一定要使用自定义 View,那么尽量去继承系统已有的组件,并重写其中的部分方法,不要自己从头开始写。例如:图像相关的 View 可以考虑继承 ImageView,容器类 View 可以考虑继承 LinerLayout,RelativeLayout 等,原因同上。
2224

2325
#### 第三条:处理特殊情况。
2426

25-
针对能想到的一些特殊情况进行处理并且测试,尽量保证自定义 View 能适应各种特殊场景。
27+
针对能想到的一些特殊情况进行处理并且测试,尽量保证自定义 View 能适应各种特殊场景。
28+
29+
#### 第四条:留下文档。
30+
31+
**程序员有两大痛苦,1、别人写的项目居然没有文档。2、自己写的项目居然要写文档。**
32+
33+
虽然有时候文档写起来确实挺麻烦,但是个人建议必须要留下文档,至少要为自己写的程序添加**有效的注释**
34+
​ 于自定义View而言,首先要标明这个自定义View是解决什么问题,有怎样的效果,使用的场景如何。
35+
​ 其次要在关键部位标注实现原理。(例如:显示圆形的ImageView,要标明圆形是如何实现的,使用的是遮罩还是剪裁。)
36+
​ 避免无效注释 (例如:在onDraw上面标注绘图),大家都知道这个是绘图,但绘制逻辑才是重点,要去标注绘制逻辑。
37+
38+
39+

0 commit comments

Comments
 (0)