2013-10-22 23 views
40

Tôi cố gắng gọi View.getMeasuredHeightView.getHeight trong onGlobalLayout. Cả hai đều cho tôi kết quả tương tự.Sự khác biệt giữa getMeasuredHeight và getHeight

Tôi đã tự hỏi, trong tình huống nào giá trị của họ sẽ khác? Có ví dụ nào để chứng minh điều này không?

Tôi đã thử tìm kiếm trong google. Kết quả đầu tiên dường như không liên quan đến câu hỏi này: Android: How to get a custom View's height and width?

Trả lời

63

Khi bạn sử dụng Chế độ xem, nó áp đặt giới hạn kích thước nhất định trên các phần tử con của nó. Những hạn chế này có thể ngăn chặn một phần tử con chiếm số lượng không gian mà nó muốn.

Các documentation for the View class mô tả các đặc tính như sau:

Kích thước của một cái nhìn được thể hiện có chiều rộng và chiều cao. Chế độ xem thực sự có hai cặp giá trị chiều rộng và chiều cao.

Cặp đầu tiên được gọi là chiều rộng được đo và chiều cao được đo. Các kích thước này xác định mức độ lớn mà một khung nhìn muốn nằm trong bố cục của nó (xem Bố cục để biết thêm chi tiết). Các kích thước đo được có thể thu được bằng cách gọi phương thức getMeasuredWidth() và getMeasuredHeight().

Cặp thứ hai được gọi đơn giản là chiều rộng và chiều cao hoặc đôi khi vẽ chiều rộng và chiều cao bản vẽ. Các thứ nguyên này xác định kích thước thực tế của chế độ xem trên màn hình, tại thời gian vẽ và sau khi bố cục. Các giá trị này có thể, nhưng không nhất thiết phải khác với chiều rộng và chiều cao đo được. Chiều rộng và chiều cao có thể thu được bằng cách gọi getWidth() và getHeight().

Xem thêm: http://developer.android.com/guide/topics/ui/how-android-draws.html

Các vấn đề liên quan