什么是isIndditMode()和if(isInEditMode())返回;

Wow*_*zer 1 java android android-custom-view

  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);
    }
Run Code Online (Sandbox Code Playgroud)

我试着理解如何创建涟漪效应时遇到上面的代码.

1)我的问题是究竟是什么isInEditMode().我看了一下开发者网站,解释对我来说有点混乱.

2)另一个是令if(isInEditMode()) return;我惊讶的代码.我认为if语句检查遵循格式if(){return;}.但是,上面代码的格式化方式让我感到困惑,我想知道为什么会这样.

3)另外,如果返回值没有,为什么不首先不指定它?

N J*_*N J 6

解释很简单就看看这个

在开发人员工具(Android studio,Eclipse等)中显示时,View通常处于编辑模式.例如,如果此视图由可视用户界面构建器绘制,则此方法应返回true.

例如:该类在其构造函数中生成一个线程,绘图代码依赖于特定于设备的功能等.此方法通常在自定义小部件的绘图代码中进行检查.

所以isInEditMode()仅用于图形目的(在Android studio ..etc中)

另一个是if(isInEditMode())返回; 令我觉得奇怪的代码

作为单行代码,您可以省略{}括号.

另外,如果返回值没有,为什么不首先不指定它?

因为方法返回类型Void只返回.放置返回的原因是java,如果视图处于编辑模式,则不希望进行特定于设备的操作.