Tips:使用 isInEditMode() 优化布局预览 - ToHaveADream/AndroidStudy GitHub Wiki
isInEditMode() 方法是用于判断 View 当前是否处于 IDE 布局编辑(预览)状态,只有在编辑状态下才会返回 true,当我们编写只有在运行时才能看到绘制效果的自定义 View 的时候,可以使用 isInEditMode() 方法让 View 在布局预览的时候就看到运行时的大概样子。例如我们通过 View 实现一个圆形不断放大缩小的动画时,正常情况我们只有在程序运行的时候才能看到动画效果,在布局预览的时候是空白一片的,我们可以通过 isInEditMode() 方法在编辑的时候先绘制一个圆形,让开发者大概知道这个动画 View 会是什么样子,虽然它是静止的,但是也好过一片空白:
`public class AnimationView extends View { @Override
public void onDraw(Canvas canvas) {
if (isInEditMode()) {
// 编辑状态下绘制一个圆形,让开发者大概知道圆形的大小。
canvas.drawCircle(centerX, centerY, radius, paint);
} else {
// 运行时刷新画面。
}
}
}
` 我们在布局预览的时候就会看到一个圆形被绘制出来,并且在程序正在运行的时候不会绘制该圆形: