在自定义控件的构造函数,onLayout(),onFinishInflate()的super方法后面加上if (isInEditMode()) { return; }即可。
见下面代码
public custom_checkbox(Context context) {
super(context);
if (isInEditMode()) { return; }
}
public custom_checkbox(Context context, AttributeSet attrs) {
super(context, attrs);
initCheckboxBitmap();
if (isInEditMode()) { return; }
}
public custom_checkbox(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
if (isInEditMode()) { return; }
}
protected void onFinishInflate() {
super.onFinishInflate();
if (isInEditMode()) { return; }
}
protected void onLayout(boolean changed, int left, int top, int right,
int bottom) {
super.onLayout(changed, left, top, right, bottom);
if (isInEditMode()) { return; }
}
本文介绍如何在自定义控件中通过判断 isInEditMode() 来区分编辑模式与运行模式,避免在编辑器预览时执行不必要的操作,提高自定义控件的兼容性和稳定性。
1239

被折叠的 条评论
为什么被折叠?



