我有一个自定义视图,该视图在onDraw
中呈现了自己的一部分(粉红色区域)。它通过通过适配器/绑定设置的类实例来执行此操作。在设计时, 117 和 details 控件没有问题。但是,此粉红色区域 导致在Android Studio中调用onDraw
。
运行时一切正常。但是,我正在(并且正确地)收到一条Android Studio错误消息-因为用于实例化绘制的类尚未实例化。
所以我的问题是:
我可以通过代码 检测应用程序是否在AS内部运行(真的在渲染)(而不是部署到模拟器或设备上)?**
可能是类似if (BuildConfig.DEBUG)
的东西,或者可能是[完全]不同的东西。 (BuildDebug
实例中肯定没有其他任何帮助。)
最终,我看到了我当前的
override fun onDraw(canvas: Canvas) {
:
:
puzzle.doSomething
替换为:
if (!INSIDE_ANDROID_STUDIO)
puzzle.doSomething
我花了一个多小时在网上搜索。没有运气。很难问“我怎么知道我是否在Android Studio IDE中运行?”却没有获得与以下内容有关的大量链接:
但是没有重点。我还搜索了许多“ UninitializedPropertyAccessException”和“渲染问题”。
答案 0 :(得分:2)
您可以通过检查返回isInEditMode()
方法的内容来做到这一点。如果true
的视图显示在AS或其他工具中,否则显示在设备上。
指示此视图当前是否处于编辑模式。当在开发人员工具中显示时,视图通常处于编辑模式。例如,如果此视图由可视用户界面构建器绘制,则此方法应返回true。
https://developer.android.com/reference/android/view/View#isInEditMode()