美文网首页
4.3 View的工作流程(三)

4.3 View的工作流程(三)

作者: 武安长空 | 来源:发表于2016-06-22 14:28 被阅读2次

1. View的draw方法

public void draw(Canvas canvas) {
    // Step 1, draw the background, if needed
    int saveCount;

    if (!dirtyOpaque) {
        drawBackground(canvas);
    }

    // skip step 2 & 5 if possible (common case)
    if (!verticalEdges && !horizontalEdges) {
        // Step 3, draw the content
        if (!dirtyOpaque) onDraw(canvas);

        // Step 4, draw the children
        dispatchDraw(canvas);

        // Step 6, draw decorations (foreground, scrollbars)
        onDrawForeground(canvas);

        // we're done...
        return;
    }
}

2. setWillNotDraw

public void setWillNotDraw(boolean willNotDraw) {
    setFlags(willNotDraw ? WILL_NOT_DRAW : 0, DRAW_MASK);
}

如果一个View不需要绘制任何内容,可以设置这个标记位为true,则系统就不会进行绘制,优化性能。

相关文章

网友评论

      本文标题:4.3 View的工作流程(三)

      本文链接:https://www.haomeiwen.com/subject/aeqndttx.html