CFSDN nhấn mạnh vào việc tạo ra giá trị thông qua mã nguồn mở. Chúng tôi cam kết xây dựng một nền tảng chia sẻ tài nguyên để mọi người làm CNTT có thể tìm thấy thế giới tuyệt vời của riêng mình tại đây.
Bài phân tích bài đăng trên blog CFSDN này: Cách ghi đè phương thức onMeasure trong lớp con kế thừa ViewGroup được tác giả thu thập và sắp xếp. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.
1. Đầu tiên, dán đoạn mã mà tôi đã kiểm tra thành công.
Sao chép mã như sau
Khoảng trống được bảo vệ (int widthmeasurespec, int heightmeasure (); I ++) urespec.makemeasurespec (params.width, đo MeasureSpec.makeMeasureSpec(measureWidth, MeasureSpec.EXACTLY); } else if (params.width == -2) { widthSpec = MeasureSpec.makeMeasureSpec(measureWidth, MeasureSpec.AT_MOST); } if(params.height > 0){ heightSpec = MeasureSpec.makeMeasureSpec(params.height, MeasureSpec.EXACTLY); } else if (params.height == -1) { heightSpec = MeasureSpec.makeMeasureSpec(measureHeigth, MeasureSpec.EXACTLY); } else if (params.height == -2) { heightSpec = MeasureSpec.makeMeasureSpec(measureWidth, MeasureSpec.AT_MOST); } v.measure(widthSpec, heightSpec); } }
Giải thích: Đầu tiên, xác định giá trị của params.width. Có ba trường hợp. Nếu giá trị này lớn hơn 0 và một giá trị cụ thể được truyền vào thì có thể sử dụng EXACTLY trực tiếp khi xây dựng MeasupreSpec. Nếu là -1, thì đó là trường hợp của MatchParent, sau đó lấy chiều rộng của View cha và sử dụng EXACTLY để xây dựng MeasureSpec. Nếu là -2, thì đó là trường hợp của wrapContent, khi đó bạn chỉ có thể sử dụng số âm để xây dựng MeasureSpec.
Cuối cùng, bài viết này về phân tích: cách viết lại phương thức onMeasure trong một lớp con kế thừa ViewGroup kết thúc tại đây. Nếu bạn muốn biết thêm về phân tích: cách viết lại phương thức onMeasure trong một lớp con kế thừa ViewGroup, vui lòng tìm kiếm các bài viết trên CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!