在表行中获取动态TextView的宽度

时间:2011-09-28 07:50:09

标签: android textview

在设置一些随机文本后,我在这里试图在表行中获取TextView的宽度。 我使用 getWidth(),但它总是返回零。有没有办法找出动态创建的TextView的宽度。

这是我的代码。

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    customer_id=(TextView)findViewById(R.id.customer_id);
    comapny_name=(TextView)findViewById(R.id.compnay_name);
    line1=(ImageView)findViewById(R.id.line1);




    TableLayout tl=(TableLayout)findViewById(R.id.linlay);
    TableRow tr1 =null;
    for(int i=0;i<20;i++)
    {
        tr1 = new TableRow(this);
    tr1.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
    TextView textview = new TextView(this);
    textview.setText("data");
    textview.setTextColor(Color.YELLOW);
    textview.setTextSize(30);


    TextView textview1 = new TextView(this);
    textview1.setText("data1");
    textview1.setTextColor(Color.YELLOW);
    textview1.setTextSize(30);

    tr1.addView(textview);
    tr1.addView(textview1);
    tl.addView(tr1);

int width=textview.getWidth();
Log.i("Width",width+"");

}     

1 个答案:

答案 0 :(得分:1)

确实,布局已经膨胀但尚未绘制,所以为了获得宽度,你必须

@Override 
public void onWindowFocusChanged(boolean hasFocus) 
{ 
     // TODO Auto-generated method stub 
     super.onWindowFocusChanged(hasFocus);
     System.out.println("...111Height..."+textview.getMeasuredWidth()); 
}