一位不愿意透漏姓名的胡英杰先生 2019-03-31 15:47 采纳率: 60%
浏览 409
已采纳

安卓取控件宽高,带不出方法

public class MainActivity extends AppCompatActivity {
    private TextView tv;
    int w,h;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = findViewById(R.id.tv);
        tv.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                h = tv.getMeasuredHeight();
                w = tv.getMeasuredWidth();
                tv.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                Log.d("tagggli", String.valueOf(h) + "***" + String.valueOf(w));
            }
        });
  ![图片说明](https://img-ask.csdn.net/upload/201903/31/1554018380_214098.png)
      Log.d("tagggwai", String.valueOf(w) + "***" + String.valueOf(h));
    }
}

我想在27行用这个数值,应该怎么做

  • 写回答

2条回答 默认 最新

  • yuan7016 2019-04-01 11:00
    关注

    你把 Log.d("tagggli", String.valueOf(h) + "***" + String.valueOf(w)); 写在tv.getViewTreeObserver().removeOnGlobalLayoutListener(this); 上面试试 或者使用tv.post(new Runnable() {
    @Override
    public void run() {
    //获取宽高
    }
    });

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?