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

应该会有个监听函数吧?看不懂英文查不了API。。... 应该会有个监听函数吧?
看不懂英文 查不了API。。
展开
 我来答
八哥说科技
高粉答主

2019-08-18 · 分享科技资讯,共享科技生活
八哥说科技
采纳数:111 获赞数:78614

向TA提问 私信TA
展开全部

1、view重绘时回调(即监听函数,当view重绘完成自动动用,需要向view的观察者添加监听器)。格式:

view.getViewTreeObserver().addOnDrawListener(new OnDrawListener() {     

@Override

public void onDraw() {

// TODO Auto-generated method stub

}

});

2、view加载完成时回调(当view加载完成自动动用,需要向view的观察者添加监听器)。格式:

view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

@Override

public void onGlobalLayout() {

// TODO Auto-generated method stub 

}

});

扩展资料:

两种方式刷新:

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

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

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().。

API的描述译文:当Invalidate()被调用的时候,View的OnDraw()就会被调用,Invalidate()必须是在UI线程中被调用,如果在新线程中更新视图的就调用postInvalidate()。

参考资料来源:百度百科-Android高级编程

参考资料来源:百度百科-activity (Android组件中最重要的四大组件之一)

科特曜U
推荐于2017-10-13 · TA获得超过2334个赞
知道大有可为答主
回答量:1052
采纳率:50%
帮助的人:747万
展开全部

可以设置这个回调函数

//view重绘时回调
view.getViewTreeObserver().addOnDrawListener(new OnDrawListener() {
@Override
public void onDraw() {
// TODO Auto-generated method stub

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

}
});
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
megoc
2015-04-05 · 超过32用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:43.2万
展开全部
你的目的是想等绘制完了获取它的宽高吧,还有其他方法的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贸垒2u
2015-04-05 · TA获得超过207个赞
知道小有建树答主
回答量:464
采纳率:0%
帮助的人:335万
展开全部
onfinishInflate 重绘可以在ondraw里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式