티스토리 뷰
728x90
반응형
ViewHolder 클래스 만들기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class MyVh extends RecyclerView.ViewHolder{ private final ItemBinding binding; public MyVh(ItemBinding binding){ super(binding.getRoot()); this.binding = binding; } public void bind(Item item){ binding.setItem(item); binding.executePendingBindings(); } } | cs |
변수나 Observable이 변경되면 바인딩이 다음 프레임 전에 변경되도록 예약을 한다.
하지만 바인딩을 즉시 실행해야 할 때가 있다. 이럴 때 강제로 실행하기 위해
1 | executePendingBindings() | cs |
메소드를 이용한다
1 2 3 4 | public MyVh(View itemView){ super(itemView); binding = DataBindingUtil.bind(itemView); } | cs |
이런 형식도 가능하다
사용
1 2 3 4 5 6 7 8 9 10 | public MyVh onCreateViewHolder(ViewGroup parent, int viewType){ LayoutInflater inflater = LayoutInflater.from(parent.getContext()); ItemBinding itemBinding = ItemBinding.inflate(inflater, parent, false); return new MyVh(itemBinding); } public void onBindViewHolder(MyVh holder, int position){ Item item = getItemFroPosition(position); holder.bind(item); } | cs |
동적인 Layout 바인딩
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class MyVh extends RecyclerView.ViewHolder{ private final ViewDataBinding binding; public MyVh(ViewDataBinding binding){ super(binding.getRoot()); this.binding = binding; } public void bind(Object obj){ binding.setVariable(BR.obj, obj); binding.executePendingBindings(); } } | cs |
생성되는 바인딩 클래스는 레이아웃 내에서 레이아웃 변수를 View와 연결하고
생성되는 바인딩 클래스는 모두 ViewDataBinding을 확장한다.
Observable 인터페이스를 구현하는 클래스를 사용하면 바인딩이 바인딩된 객체에 단일 리스너를 연결하여
그 객체에 대한 모든 속성의 변경 사항을 수신할 수 있다.
getter에 Bindable 주석을 할당하고 setter에서 이를 알림으로써 속성 변경을 알릴 수 있다
Bindable주석은 컴파일 중에 BR 클래스 파일에 항목을 생성한다. 이 파일은 모듈 패키지에 생성된다
+ References
https://medium.com/google-developers/android-data-binding-recyclerview-db7c40d9f0e4
반응형
'프로그래밍 > Android' 카테고리의 다른 글
FCM, GCM (0) | 2017.11.16 |
---|---|
[Android] static member accessed via instance reference (0) | 2017.11.09 |
[Android] Handler.handleMessage() 사용 (0) | 2017.10.29 |
[Android] 메모리관리 (0) | 2017.10.29 |
[Android] This Handler class should be static or leaks might occur (0) | 2017.10.29 |
공지사항
최근에 올라온 글