如何检索视图的维度?

如何检索视图的维度?

我的看法是TableLayout, TableRow and TextView..我想让它看起来像个网格。我需要得到这个网格的高度和宽度。方法getHeight()getWidth()始终返回0。当我动态地格式化网格时,以及当我使用XML版本时,都会发生这种情况。

如何检索视图的维度?


下面是我在Debug中用来检查结果的测试程序:

import android.app.Activity;import android.os.Bundle;import android.widget.TableLayout;import android.widget.TextView;
public class appwig extends Activity {  
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.maindemo);  //<- includes the grid called "board"
      int vh = 0;   
      int vw = 0;

      //Test-1 used the xml layout (which is displayed on the screen):
      TableLayout tl = (TableLayout) findViewById(R.id.board);  
      tl = (TableLayout) findViewById(R.id.board);
      vh = tl.getHeight();     //<- getHeight returned 0, Why?  
      vw = tl.getWidth();     //<- getWidth returned 0, Why?   

      //Test-2 used a simple dynamically generated view:        
      TextView tv = new TextView(this);
      tv.setHeight(20);
      tv.setWidth(20);
      vh = tv.getHeight();    //<- getHeight returned 0, Why?       
      vw = tv.getWidth();    //<- getWidth returned 0, Why?

    } //eof method} //eof class


慕后森
浏览 460回答 3
3回答

HUWWW

我只需添加另一个解决方案,重写活动的onWindowFocusChanged方法,您就可以从那里获得getHL.8()、getWidth()的值。@Overridepublic&nbsp;void&nbsp;onWindowFocusChanged&nbsp;(boolean&nbsp;hasFocus)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;height&nbsp;will&nbsp;be&nbsp;set&nbsp;at&nbsp;this&nbsp;point &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;height&nbsp;=&nbsp;myEverySoTallView.getMeasuredHeight();&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android