首页 > 其他 > 详细

通过View.post()获取View的宽高

时间:2019-04-19 22:49:39      阅读:170      评论:0      收藏:0      [点我收藏+]

在Android里,获取View宽高的时机是个老生常谈的话题了。众所周知,在Oncreate里直接调用View.getWidth或者View.getMeasuredWidth返回都是0。所以获取宽高时机很重要,对于这个问题的解决方法概括起来有四种之多,具体可以看看任玉刚老师的《Android开发艺术探索》中的View章节或者网上也有非常丰富的资料。
而本文主要讨论的是其中的一个解决方法。

View.post()获取View宽高
这个方法相信大家都很熟悉了,就是这样:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mTextView = (TextView) findViewById(R.id.my_text);
        // 下面这一行log打印的是0,0
        Log.d("test", "mTextView width : " + mTextView.getMeasuredWidth() + " - height : " + mTextView.getMeasuredHeight());
        mTextView.post(new Runnable() {

            @Override
            public void run() {
                // 下面这一行log打印的是TextView测量后的宽高
                Log.d("test", "mTextView width : " + mTextView.getMeasuredWidth() + " - height : " + mTextView.getMeasuredHeight());
            }
        });
    }

  

原文:https://blog.csdn.net/scnuxisan225/article/details/49815269 

 

通过View.post()获取View的宽高

原文:https://www.cnblogs.com/tc310/p/10739247.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!