为了账号安全,请及时绑定邮箱和手机立即绑定

请问Android 如何判断一个View重绘或加载完成?

请问Android 如何判断一个View重绘或加载完成?

慕桂英4014372 2019-09-16 16:12:51
Android 如何判断一个View重绘或加载完成?
查看完整描述

3 回答

?
森栏

TA贡献1810条经验 获得超5个赞

可以设置这个回调函数

12345678//view重绘时回调view.getViewTreeObserver().addOnDrawListener(new OnDrawListener() {          @Override    public void onDraw() {    // TODO Auto-generated method stub             }});
12345678//view加载完成时回调view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {    @Override    public void onGlobalLayout() {    // TODO Auto-generated method stub                 }});


查看完整回答
反对 回复 2019-09-25
?
PIPIONE

TA贡献1829条经验 获得超9个赞

两种方式刷新:

  1. 主线程可以直接调用Invalidate()方法刷新

  2. 子线程可以直接调用postInvalidate()方法刷新。

  3. API的描述是这样的 : Invalidatethe whole view. If the view is visible, onDraw(Canvas) will be called at somepoint in the future. This must be called from a UI thread. To call from anon-UI thread, call postInvalidate().。当Invalidate()被调用的时候,View的OnDraw()就会被调用,Invalidate()必须是在UI线程中被调用,如果在新线程中更新视图的就调用postInvalidate()。



查看完整回答
反对 回复 2019-09-25
?
慕村9548890

TA贡献1884条经验 获得超4个赞

修改颜色后调用invalidate()
在自定义View 中提供一个方法
public void setRectColor(int color){
colors[x][x] = color; //修改颜色

invalidate();
}


查看完整回答
反对 回复 2019-09-25
  • 3 回答
  • 0 关注
  • 431 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信