使用布局权重获取textview集的高度和宽度?

时间:2016-01-13 05:56:44

标签: android android-layout android-linearlayout

我使用布局权重将TextViews设置为线性布局。

   linearLayout.setWeightSum(7f);

   for(int i=0;i<7;i++){
     TextView tv= new TextView(this);
     tv.setLayoutParams(new LinearLayout.LayoutParams(
                        LayoutParams.MATCH_PARENT, 0, 1f));
     tv.setText("sometext");
     linearLayout.addView(tv);
   }

如何在绘制布局后获取这些TextView的宽度和高度?

tv.getWidth()和tv.getHeight()返回0;

2 个答案:

答案 0 :(得分:9)

使用

  

getViewTreeObserver

作为

 yourView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

        @Override
        public void onGlobalLayout() {
            // Ensure you call it only once :
            yourView.getViewTreeObserver().removeGlobalOnLayoutListener(this);

            // get size of view here
        }
    });

答案 1 :(得分:-1)

尝试以下

TextView mLblDesc=(TextView)findViewById(R.id.mLblDesc);
        mLblDesc.getMaxHeight();
        mLblDesc.getMaxWidth();