如何在onDraw中判断我是否在Android Studio中?

时间:2019-05-15 10:46:33

标签: android android-studio

我有一个自定义视图,该视图在onDraw中呈现了自己的一部分(粉红色区域)。它通过通过适配器/绑定设置的类实例来执行此操作。在设计时, 117 details 控件没有问题。但是,此粉红色区域 导致在Android Studio中调用onDraw

enter image description here

运行时一切正常。但是,我正在(并且正确地)收到一条Android Studio错误消息-因为用于实例化绘制的类尚未实例化。

enter image description here

所以我的问题是

  

我可以通过代码 检测应用程序是否在AS内部运行(真的在渲染)(而不是部署到模拟器或设备上)?**

可能是类似if (BuildConfig.DEBUG)的东西,或者可能是[完全]不同的东西。 (BuildDebug实例中肯定没有其他任何帮助。)

最终,我看到了我当前的

    override fun onDraw(canvas: Canvas) {
        :
        :
        puzzle.doSomething

替换为:

        if (!INSIDE_ANDROID_STUDIO)
            puzzle.doSomething

我花了一个多小时在网上搜索。没有运气。很难问“我怎么知道我是否在Android Studio IDE中运行?”却没有获得与以下内容有关的大量链接:

  • 为什么Android Studio无法正确运行?
  • 如何判断另一个应用程序是否正在运行
  • 如何判断您的应用位于前台还是后台
  • 为什么这个或那个不能正确显示

但是没有重点。我还搜索了许多“ UninitializedPropertyAccessException”和“渲染问题”。

1 个答案:

答案 0 :(得分:2)

您可以通过检查返回isInEditMode()方法的内容来做到这一点。如果true的视图显示在AS或其他工具中,否则显示在设备上。

  

指示此视图当前是否处于编辑模式。当在开发人员工具中显示时,视图通常处于编辑模式。例如,如果此视图由可视用户界面构建器绘制,则此方法应返回true。

https://developer.android.com/reference/android/view/View#isInEditMode()