2010-08-30 18 views
21

Tôi đang cố điều chỉnh động chiều cao của các hàng tùy theo chiều cao màn hình - chiều cao bố cục của tôi)/list.size.Chiều cao tuyến tính trong ngàyTạo ra là 0

Thật không may trong phương thức onCreate chiều cao bố cục trả về null (không phải như vậy khi tôi gọi nó trong trình nghe nhấp chuột trên).

Có phương pháp nào khác mà tôi có thể gọi không?

Trả lời

52

Bạn phải đợi cho đến khi bố cục diễn ra, sau onCreate(). Bạn có thể làm như vậy bằng cách nghe theo số onSizeChanged() trên Chế độ xem hoặc bằng cách đăng Runnable từ onCreate() (myView.post(new Runnable() { ... })).

+0

Dường như không có người nghe cho onSizeChanged trong Android 1.6? (Tôi thậm chí đã thử với Chế độ xem mới(). SetOnSize ... Và findViewById (R.layout.main) trả lại giá trị rỗng ... Có vẻ như tôi là thằng ngốc nhưng tôi chưa hoàn toàn hiểu android. .. – Chr0n

+0

tôi đặt nó vào nút mà kích cỡ tôi đang chờ đợi trong khi đó .. this.btNext.post (new Runnable() { \t \t \t public void run() { \t \t \t \t // Initialize tableLayout with Contacts \t \t \t \t initTableLayout(); \t \t \t} \t \t}); Cảm ơn thông tin. – Chr0n

+10

Tại sao việc đăng một 'Runnable' lên' View' đảm bảo rằng mã trong 'Runnable' sẽ được thực hiện sau khi bố cục đã xảy ra? Nó có phải là một tính năng thiết kế của 'View' mà các thông điệp được xử lý ra là' Handler' một khi bố trí đã xảy ra? – Trevor

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