01. view binding을 사용할 수 있도록 환경 설정
<build.gradle(Module:프로젝트파일명)>
android {
// 기존 내용들 생략..
buildFeatures {
// 뷰 바인딩 활성화
viewBinding true
}
}
02. Activity / Fragment에서 RecyclerView 설정
<JAVA>
binding.recyclerView.setLayoutManager(
new LinearLayoutManager({this 혹은 context}, LinearLayoutManager.VERTICAL, false));
binding.recyclerView.setAdapter(new {Adapter명: MyAdapter}({리사이클러뷰에 넣을 리스트}));
binding.recyclerView.setHasFixedSize(true);
<Kotlin>
binding.recyclerView.layoutManager
= LinearLayoutManager({this 혹은 context}, LinearLayoutManager.VERTICAL, false)
binding.recyclerView.adapter = {Adapter명: MyAdapter}({리사이클러뷰에 넣을 리스트})
binding.recyclerView.setHasFixedSize(true)
03. Adapter 설정
<JAVA>
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.HomeHolder> {
ArrayList<String> itemList;
public MyAdapter(ArrayList<String> itemList) {
this.itemList = itemList;
}
@NonNull
@Override
public HomeHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
{리사이클러뷰 아이템 레이아웃명 + Binding} binding
= {리사이클러뷰 아이템 레이아웃명 + Binding}
.inflate(LayoutInflater.from(viewGroup.getContext()), viewGroup, false);
return new HomeHolder(binding);
}
@Override
public void onBindViewHolder(@NonNull HomeHolder holder, int position) {
// holder.binding.{아이템} 세팅
}
@Override
public int getItemCount() {
return itemList.size();
}
static class HomeHolder extends RecyclerView.ViewHolder{
{리사이클러뷰 아이템 레이아웃명 + Binding} binding;
public HomeHolder({리사이클러뷰 아이템 레이아웃명 + Binding} b){
super(b.getRoot());
binding = b;
}
}
}
<Kotlin>
class MyAdapter(private val itemList: ArrayList<String>) : RecyclerView.Adapter<MyHolder>(){
override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): MyHolder {
val binding = {리사이클러뷰 아이템 레이아웃명 + Binding}
.inflate(LayoutInflater.from(viewGroup.context), viewGroup, false)
return MyHolder(binding)
}
override fun getItemCount(): Int {
return itemList.size
}
override fun onBindViewHolder(holder: MyHolder, position: Int) {
holder.binding.{아이템명} 세팅
}
class MyHolder(val binding: {리사이클러뷰 아이템 레이아웃명 + Binding}) : RecyclerView.ViewHolder(binding.root)
}
* 리사이클러뷰 아이템 레이아웃명 + Binding : 레이아웃이 layout_list 이면 ListLayoutBinding으로 사용
'Android > UI-UX 디자인' 카테고리의 다른 글
[Android/Layout]소스에서 컬러에 알파값 추가하기 (0) | 2023.02.25 |
---|---|
[Android/Layout]xml에서 tools 란? (0) | 2023.02.25 |
[Android/WebView]기초 #1. 주소를 가져와 화면에 호출 (0) | 2021.09.23 |
[Android/Layout]리사이클러뷰 내 Swipe 기능으로 리스트 새로고침 (0) | 2021.05.16 |
[Android/Basic]설정화면 구현하기 (0) | 2021.05.12 |