zoukankan      html  css  js  c++  java
  • 通过View.post()获取View的宽高

    在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 

  • 相关阅读:
    【递归】拆分自然数
    HDOJ3068最长回文
    博弈论——尼姆博奕
    vijos P1047最小公倍数
    Eular质数筛法-hiho一下 第九十三周
    hdoj-5652 India and China Origins二分+bfs
    hdoj-1166排兵布阵 简单的树状数组
    hdoj-5641 king's phone
    hdoj-1548简单的bfs题目
    命令中"|"的意义
  • 原文地址:https://www.cnblogs.com/tc310/p/10739247.html
Copyright © 2011-2022 走看看