该问题通常是由于在更新进度指示器的过程中,Surface没有完成布局和绘制导致的。可以在调用updateSurface()之前,先调用measure()和layout()方法,确保正确测量和布局Surface,然后再调用updateSurface()方法。
以下是示例代码:
// 在调用updateSurface()之前,先进行测量和布局 mProgressIndicator.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); mProgressIndicator.layout(0, 0, mProgressIndicator.getMeasuredWidth(), mProgressIndicator.getMeasuredHeight());
// 然后再调用updateSurface() mProgressIndicator.updateSurface();