Android 开发之 View.post() 的作用
来源:互联网 发布:江西省公务员待遇知乎 编辑:程序博客网 时间:2024/04/29 06:14
1、在 onCreate() 方法中直接调用 view.getHeight() 会返回 0,但是可以在 view.post() 中获取控件的宽高:
view.post(new Runnable() { @Override public void run() { showToast("" + view.getHeight()); } });
2、用 View.postDelayed() 方法来防止一段时间内多次点击 view 而频繁触发点击事件:
view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { view.setEnabled(false); //进行其他操作 view.postDelayed(new Runnable() { @Override public void run() { view.setEnabled(true); } }, 500);//500ms内只能点击一次 } });
PS:post 带一个 Runnable,表示 Runnable 的工作在 UI 线程执行,可直接在 Runnable 内对UI进行更新操作,但要注意这里的 Runnable 不是新开了线程,因此不要进行复杂耗时的工作,以免阻塞导致 ANR。
3、从其它线程访问主线程主要有以下几种方式:
- Activity.runOnUiThread(Runnable)
- View.post(Runnable)
- View.postDelayed(Runnable, long)
- Handler
View.post 背后的运行过程可以参考下面的资料:
一种DelayLoad的实现和原理(下篇)
看完这篇分析,你就会明白为什么在 onCreate() 中要调用 View.post() 才可以获取一个 View 的高度。
阅读全文
2 0
- Android 开发之 View.post() 的作用
- Android View.post(Runnable )的作用
- Android开发 之 view的移动方法
- Android多线程之handler+runOnUithread+view.post+handler.post
- 关于Android View.post(Runnable ) 的使用
- android-View.post与Handler.post的区别
- android中view.post和handle.post的区别
- android开发之自定义View
- Android开发之View系统
- Android开发之自定义View
- Android开发之通过Handler的post方法更新UI
- Android View.post(Runnable )
- Android View.post(Runnable )
- Android View.post(Runnable )
- Android View.post(Runnable )
- Android View.post(Runnable )
- Android View.post(Runnable )
- Android View.post(Runnable )
- connect 连接超时
- (0069)iOS开发之dequeueReusableCellWithIdentifier的两个方法的区别
- Android知识点整体目录
- 网上流行护眼色的RGB值和颜色代码
- Fastlane构建ipa包流程小结 -- match 篇
- Android 开发之 View.post() 的作用
- 运行script_faster_rcnn_VOC2007_ZF.m出现的错误
- AI 学习之路——轻松初探 Python 篇(一)
- FastJson一些常见方法(API)
- 数据结构实验之图论二:图的深度遍历
- 面向对象--异常
- Spring IOC 源码分析-bean标签解析
- Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE)
- android listview多布局