post

Posted andy-songwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了post相关的知识,希望对你有一定的参考价值。

二、使用View.post()获取View的宽高

       看到这个标题的时候,您可能会很纳闷,平时工作中不是可以直接通过view.getWidth()(getHeight也一样,后面不赘述)就能获取view的宽高吗,通过View.post()来实现岂不是多此一举?

  1、通过post获取宽高的示例演示

       对于上述疑惑,咱们先来一个例子:

 1 private Button mStartBtn;
 2 @Override
 3 protected void onCreate(Bundle savedInstanceState) {
 4     super.onCreate(savedInstanceState);
 5     setContentView(R.layout.activity_intent_service);
 6     mStartBtn = findViewById(R.id.start);
 7     Log.d(TAG, "width-1=" + mStartBtn.getWidth());
 8     mStartBtn.post(new Runnable() {
 9         @Override
10         public void run() {
11             Log.d(TAG, "width-3=" + mStartBtn.getWidth());
12         }
13     });
14     mStartBtn.setOnClickListener(new View.OnClickListener() {
15         @Override
16         public void onClick(View v) {
17             Log.d(TAG, "width-4=" + mStartBtn.getWidth());
18         }
19     });
20 }
21 @Override
22 protected void onResume() {
23     super.onResume();
24     Log.d(TAG, "width-2=" + mStartBtn.getWidth());
25 }

运行后得到如下log:

1 12-10 16:16:49.059 18918-18918/com.example.demos D/postDemo: width-1=0
2 12-10 16:16:49.065 18918-18918/com.example.demos D/postDemo: width-2=0
3 12-10 16:16:49.104 18918-18918/com.example.demos D/postDemo: width-3=264
4 12-10 16:16:53.074 18918-18918/com.example.demos D/postDemo: width-4=264

 看到这份log,对于部分童鞋来说,是不是无法淡定了?第7行和第24行为什么得到的值是0呢?后面我们会详细分析原因,这里咱们先知道会有这个现象,这就是为什么要使用view.post()来获取view宽高的原因了。第8~13行演示了该方法的使用示例,使用起来也是很简单的。

 

2、view绘制的时机问题

       通过上面

以上是关于post的主要内容,如果未能解决你的问题,请参考以下文章

非常有用的 48 个 JavaScript 代码片段

测试片段post 2

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

Wordpress查询从文章/页面中提取片段

YouTube API v3 over HTTP POST:上传视频时无法设置片段(标题最终为“未知”)

简单的 Javascript http 请求片段但不起作用