什么是 isInEditMode() 和 if(isInEditMode()) return;
What is isInEditMode() and if(isInEditMode()) return;
private void init()
{
if (isInEditMode())
return;
paint.setStyle(Paint.Style.FILL);
paint.setColor(getResources().getColor(R.color.control_highlight_color));
paint.setAntiAlias(true);
setWillNotDraw(true);
setDrawingCacheEnabled(true);
setClickable(true);
}
我 运行 进入上面的代码,同时试图理解涟漪效应是如何产生的。
1) 我的问题是 isInEditMode()
到底是什么。我看过开发者网站,解释有点让我困惑。
2) 另一个是 if(isInEditMode()) return;
代码,这让我觉得很奇怪。我认为 if 语句检查遵循格式 if(){return;}.
但是,上面代码的格式化方式让我感到困惑,我想知道为什么会这样。
3) 另外,如果 return 值什么都不是,为什么不首先指定它呢?
Explanation is simple have look at this
在开发人员工具(Android studio、Eclipse ...等)中显示时,视图通常处于编辑模式。例如,如果此视图是由可视化用户界面构建器绘制的,则此方法应该 return true。
例如:class在其构造函数中生成一个线程,绘图代码依赖于特定于设备的功能等。此方法通常在自定义小部件的绘图代码中检查。
所以 isInEditMode()
仅用于图形目的(在 Android 工作室 ..等)
Another one is the if(isInEditMode()) return; code which strikes me as
odd
作为单行代码,您可以省略 {}
方括号 .
Plus, if the return value is nothing why not just not specifies it in
the first place?
作为方法 return 类型是 Void
只有 return 如果有。
放置 return 的原因是 java 如果视图处于编辑模式,则不想进行特定于设备的操作。
在eclipse中编写xml布局时,可以很容易地在预览屏幕区域看到if (isInEditMode()) return;行的效果或 android 工作室。此行将使您的自定义视图被忽略并且不会在预览屏幕中呈现。否则,如果渲染不成功,您会看到下面的错误消息。
通常情况下,自定义视图需要先构建,因为它可以在预览屏幕上显示。有些无法呈现并始终导致错误消息。为防止在编写 xml 代码时出现这种情况,请将此行放在自定义视图中其他初始化代码的上方。
由于您对#2 和#3 没有答案,因此:
如果您的 if
中只有一条指令,则可以省略大括号。另外 java 不能通过缩进来工作,而是通过大括号和分号来工作。所以你可以把单条指令和if
放在同一行,只要有分号就没有区别。
对于return;
,此方法returns void
,因此您不能将任何对象放入return。然而,这允许您退出该方法,即当您有一个 bad/unexpected 值时,因为 return
在调用该方法时立即结束该方法。 return;
与 return void;
的意思大致相同(但我不知道这是否会编译)。
isInEditMode() 指示此视图当前是否处于编辑模式。在开发人员工具中显示时,视图通常处于编辑模式。例如,如果此视图由可视化用户界面构建器绘制,则此方法应 return 为真。 Subclasses 应该检查此方法的 return 值以提供不同的行为,如果他们的正常行为可能会干扰主机环境。例如:class 在其构造函数中生成一个线程,绘图代码依赖于特定于设备的功能等。此方法通常在自定义小部件的绘图代码中检查。
private void init()
{
if (isInEditMode())
return;
paint.setStyle(Paint.Style.FILL);
paint.setColor(getResources().getColor(R.color.control_highlight_color));
paint.setAntiAlias(true);
setWillNotDraw(true);
setDrawingCacheEnabled(true);
setClickable(true);
}
我 运行 进入上面的代码,同时试图理解涟漪效应是如何产生的。
1) 我的问题是 isInEditMode()
到底是什么。我看过开发者网站,解释有点让我困惑。
2) 另一个是 if(isInEditMode()) return;
代码,这让我觉得很奇怪。我认为 if 语句检查遵循格式 if(){return;}.
但是,上面代码的格式化方式让我感到困惑,我想知道为什么会这样。
3) 另外,如果 return 值什么都不是,为什么不首先指定它呢?
Explanation is simple have look at this
在开发人员工具(Android studio、Eclipse ...等)中显示时,视图通常处于编辑模式。例如,如果此视图是由可视化用户界面构建器绘制的,则此方法应该 return true。
例如:class在其构造函数中生成一个线程,绘图代码依赖于特定于设备的功能等。此方法通常在自定义小部件的绘图代码中检查。
所以 isInEditMode()
仅用于图形目的(在 Android 工作室 ..等)
Another one is the if(isInEditMode()) return; code which strikes me as odd
作为单行代码,您可以省略 {}
方括号 .
Plus, if the return value is nothing why not just not specifies it in the first place?
作为方法 return 类型是 Void
只有 return 如果有。
放置 return 的原因是 java 如果视图处于编辑模式,则不想进行特定于设备的操作。
在eclipse中编写xml布局时,可以很容易地在预览屏幕区域看到if (isInEditMode()) return;行的效果或 android 工作室。此行将使您的自定义视图被忽略并且不会在预览屏幕中呈现。否则,如果渲染不成功,您会看到下面的错误消息。
通常情况下,自定义视图需要先构建,因为它可以在预览屏幕上显示。有些无法呈现并始终导致错误消息。为防止在编写 xml 代码时出现这种情况,请将此行放在自定义视图中其他初始化代码的上方。
由于您对#2 和#3 没有答案,因此:
如果您的 if
中只有一条指令,则可以省略大括号。另外 java 不能通过缩进来工作,而是通过大括号和分号来工作。所以你可以把单条指令和if
放在同一行,只要有分号就没有区别。
对于return;
,此方法returns void
,因此您不能将任何对象放入return。然而,这允许您退出该方法,即当您有一个 bad/unexpected 值时,因为 return
在调用该方法时立即结束该方法。 return;
与 return void;
的意思大致相同(但我不知道这是否会编译)。
isInEditMode() 指示此视图当前是否处于编辑模式。在开发人员工具中显示时,视图通常处于编辑模式。例如,如果此视图由可视化用户界面构建器绘制,则此方法应 return 为真。 Subclasses 应该检查此方法的 return 值以提供不同的行为,如果他们的正常行为可能会干扰主机环境。例如:class 在其构造函数中生成一个线程,绘图代码依赖于特定于设备的功能等。此方法通常在自定义小部件的绘图代码中检查。