Hướng dẫn dùng findviewbyid JavaScript
1. Giới thiệuView binding được giới thiệu từ Android Studio 3.6. View binding là tính năng mới cho phép bạn thay thế câu lệnh nhàm chán findViewById với việc tự động generate các class binding cho mỗi file layout XML để đơn giản code, loại bỏ việc gặp bugs, và tránh được boilerplate so với việc sử dụng findViewById. Show 2. Sử dụngLưu ý: View binding có sẵn ở phiên bản Android Studio 3.6 Để sử dụng View binding trong module, thêm viewBinding vào file build.gradle:
Nếu bạn muốn bỏ qua file nào mà không cần gen view binding tự động, thêm thuộc tính sau vào mỗi file xml:
Một khi viewbinding được bật, class binding sẽ tự động generated cho mỗi XML layout file. Tên của class binding được generated bằng cách convert tên file layout XML thành dạng camel case và thêm hậu tố Binding phía sau cùng. Ví dụ file xml activityawesome.xml -> ActivityAwesomeBinding 2.1. Sử dụng viewbinding trong Activity:Để cài đặt instance của binding class sử dụng trong activity, trong method onCreate() thực hiện các bước sau:
Bây giờ bạn có thể sử dụng instance của binding class để tham chiếu tới các phần tử của view rồi đó
2.2. Sử dụng view binding trong Fragment:Để sử dụng instance binding class trong fragment, trong method onCreateView():
Bây giờ bạn có thể sử dụng các biến tham chiếu của view rồi:
2.3. Code được generate như thế nào:View binding sẽ tự động generate 1 class binding cho mỗi file xml. Khi bạn chỉnh sửa file layout xml, code gen tự động sẽ được tối ưu chỉ cho class binding liên quan đến file xml đó và nó sẽ được thực hiện ở memory để đảm bảo mọi thứ nhanh nhất. Hãy cùng xem 1 file gen tự động từ file layout xml:
View binding sẽ tự gen đúng type cho mỗi view xác định bởi id chỉ định cho view đó. Layout include: View binding cũng được sử dụng trong include file layout xml
Lưu ý: tag
View binding sẽ tự gen tham chiếu IncludedButtonsBinding trong ActivityAwesomeBinding 3. View binding vs findViewByIdView binding có 1 vài điểm hay hơn so với findViewById:
4. View binding vs Data BindingView binding và Data binding cả 2 đều generate tự động class binding để bạn sử dụng tham chiếu view trực tiếp. Tuy nhiên, view binding được chú ý hơn trong các use case đơn giản và cung cấp 1 số tính năng:
Bên cạnh đó, view binding cũng có 1 số nhược điểm so với data binding:
Lưu ý: View binding chỉ thay thế cho findViewById, nếu bạn muốn tự động bind view trong file layout xml, bạn có thể sử dụng view binding cùng với data binding trong cùng module. 5. View binding vs Kotlin synthetics vs ButterKnifeTrên đây đều là 3 cách để sử dụng view trong file layout xml và được mọi người sử dụng. ButterKnife validate nullable/not-null tại runtime, compiler không check rằng bạn đã match đúng trong layout hay chưa Bạn nên cân nhắc sử dụng view binding nhé! Tham khảo: https://developer.android.com/topic/libraries/view-binding https://medium.com/androiddevelopers/use-view-binding-to-replace-findviewbyid-c83942471fc |