Chức năng chính xác của LayoutInflater là gì?
Khi bạn thiết kế bằng XML, tất cả các phần tử giao diện người dùng của bạn chỉ là các thẻ và thông số. Trước khi bạn có thể sử dụng các phần tử giao diện người dùng này, (ví dụ: TextView hoặc LinearLayout), bạn cần tạo các đối tượng thực tế tương ứng với các phần tử xml này. Đó là những gì máy bơm hơi dùng cho. Bộ thổi phồng, sử dụng các thẻ này và các tham số tương ứng của chúng để tạo các đối tượng thực tế và thiết lập tất cả các tham số. Sau đó, bạn có thể nhận được tham chiếu đến phần tử giao diện người dùng bằng cách sử dụng findViewById ().
Tại sao tất cả các bài báo mà tôi đã đọc đều kiểm tra xem convertview có phải là null hay không trước tiên? Nó có nghĩa là gì khi nó là null và nó có nghĩa là gì khi nó không?
Đây là một điều thú vị. Bạn thấy đấy, getView () được gọi mỗi khi một mục trong danh sách được vẽ. Bây giờ, trước khi vật phẩm có thể được vẽ, nó phải được tạo ra. Bây giờ convertView về cơ bản là khung nhìn được sử dụng cuối cùng để vẽ một mục. Trong getView (), bạn tăng xml trước rồi sử dụng findByViewID () để lấy các phần tử giao diện người dùng khác nhau của listitem. Khi chúng tôi kiểm tra (convertView == null) những gì chúng tôi làm là kiểm tra xem nếu một chế độ xem là null (đối với mục đầu tiên) thì hãy tạo nó, nếu không, nếu nó đã tồn tại, hãy sử dụng lại nó, không cần phải thực hiện lại quá trình thổi phồng . Làm cho nó hiệu quả hơn rất nhiều.
Chắc hẳn bạn cũng đã bắt gặp khái niệm ViewHolder trong getView (). Điều này làm cho danh sách hiệu quả hơn. Những gì chúng tôi làm là tạo một trình xem và lưu trữ tham chiếu đến tất cả các phần tử giao diện người dùng mà chúng tôi nhận được sau khi thổi phồng. Bằng cách này, chúng ta có thể tránh gọi nhiều findByViewId () và tiết kiệm rất nhiều thời gian. ViewHolder này được tạo trong điều kiện (convertView == null) và được lưu trữ trong convertView bằng cách sử dụng setTag (). Trong vòng lặp khác, chúng ta chỉ lấy lại nó bằng getView () và sử dụng lại nó.
Tham số cha mà phương thức này chấp nhận là gì?
Cha mẹ là một ViewGroup mà chế độ xem của bạn được tạo bởi getView () cuối cùng được đính kèm. Bây giờ trong trường hợp của bạn, đây sẽ là ListView.
Hi vọng điêu nay co ich :)