@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());
}
});
}
view.post會把runnable插入到主線程messagequeue中,等performTraversals執行完畢後就可以獲取view的measuredewidth了