0
A
回答
1
不,这是不可能的(在正常意义上)。当您有多个视图时,在一个视图上调用invalidate()
将重绘所有这些视图。当在视图上调用invalidate()
时,它将重绘任何位于dirty region
中的内容。这在ViewGroup
中由dispathDraw()
方法处理。 dispatchDraw()
inturn调用drawChild()
,这就是为什么当我们在一个视图上调用invalidate()
时,其他视图也会被绘制。
这就是说,你可以在你自己的自定义ViewGroup
中覆盖dispatchDraw()
方法,并处理事情的表现。
0
另外:我刚发现,如果你给视图一个不透明的背景,使它失效不会使底层View失效。这不是一个完美的解决方案,但它是一个很好的解决方案。
现在我需要看看是否有可能使一个非矩形形状的视图。
相关问题
- 1. 强制重绘视图
- 2. CATiledLayer重绘底层子视图
- 3. NSView - 如何重绘子视图,而不重绘父视图
- 4. 强制重绘层
- 5. 重绘视图Android
- 6. UIView子类重绘UIBezierPath而不重绘整个视图
- 7. 调用setNeedsDisplay:YES上层托管视图不重绘视图
- 8. 如何强制重绘层
- 9. 我如何绘制/重绘一条线从主视图到iPhone的子视图?
- 10. 在ios中重绘视图
- 11. 如何重绘视图? (OpenGl)
- 12. NSView图层阴影在子视图上绘制,而不是在视图本身
- 13. Android - 如何强制一个画廊重新绘制其视图?
- 14. 我可以强制父窗口重绘而不会导致子窗口重绘吗?
- 15. 我可以强制我的启用Container从traitsui Handler重绘吗?
- 16. SL 4 - 强制重绘视觉树
- 17. 作为视频重新绘制图形
- 18. 重新绘制表格视图单元格而不调用cellForRowAtIndexPath
- 19. 我可以在drawRect方法中绘制时访问视图吗?
- 20. iPhone:旋转绘图而不旋转绘制它的视图
- 21. 如何强制重绘Activity.onConfigurationChanged中的视图
- 22. 如何强制视图在方法内重绘几次?
- 23. 如何删除UIView子视图w/out强制重绘?
- 24. 获取当前的Android视图并强制重绘它
- 25. 如何在更改尺寸时强制重绘(drawRect)子视图?
- 26. 在列表视图上绘制会禁用在列表视图项上重绘
- 27. 更新后不重绘视图QSqlTableModel
- 28. UICollectionViewCell不绘制子视图
- 29. OpenGL iOS视图不绘制
- 30. 绘制子视图
谢谢。我正在试验使下层视图成为RelativeLayout的子类,以便覆盖视图直接由它处理。重写dispatchDraw()肯定是可行的。 –
感叹。刚看过'dispatchDraw()'的源代码 - 它比我愿意覆盖的方式更复杂。我希望只有一种说法“使这种观点无效,而不是其他人”。 –
更新:如果视图具有不透明背景,则它**是可能的。见下文。 –