RecyclerView 또는 ListView? : Kotlin의 장단점 및 예
반면에 이름에서 알 수 있듯이 뷰를 재활용하는 RecyclerView가 있습니다. 즉, 뷰가 화면에서 사라지면 RecyclerView가 뷰를 재사용합니다. 이를 달성하려면 이러한 유형의 목록을 구현할 때 약간의 코드와 주의를 추가해야 합니다.

ListView: 장단점
장점
단점
RecyclerView: 장단점
장점
단점
RecyclerView 예시
매우 기본적인 RecyclerView를 구현하는 데 필요한 세 가지 사항은 다음과 같습니다.
우선 종속성에 추가하십시오.
implementation 'androidx.recyclerview:recyclerview:1.1.0'
XML 파일의 레이아웃에서 RecyclerView에 대한 참조를 추가합니다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
어댑터. RecyclerView에서 말했듯이 ViewHolder 패턴을 구현하려면 어댑터를 만들어야 합니다. 어댑터를 사용하려면 필수입니다.
class listAdapter(val data: List<String>): RecyclerView.Adapter<listAdapter.MyViewHolder> (){
class MyViewHolder(val textView: TextView) : RecyclerView.ViewHolder(textView)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val textView = LayoutInflater.from(parent.context)
.inflate(android.R.layout.simple_list_item_1, parent, false) as TextView
return MyViewHolder(textView)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.textView.text = data[position];
}
override fun getItemCount() = data.size
}
구현, 이것은 우리가 만든 어댑터를 사용하는 방법과 항목을 표시하는 방법의 예입니다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val listItems = listOf("1", "2", "3", "4", "5", "6", "7");
setContentView(R.layout.activity_main)
val myManager: RecyclerView.LayoutManager = LinearLayoutManager(this)
val myAdaapter: RecyclerView.Adapter<*> = listAdapter(listItems)
val recyclerView: RecyclerView = findViewById(R.id.recyclerView);
recyclerView.layoutManager = myManager;
recyclerView.adapter = myAdaapter;
recyclerView.setHasFixedSize(true);
}
}
ListView 예
간단한 목록 보기의 경우 너무 많은 코드가 필요하지 않습니다. 먼저 모든 레이아웃에 ListView 참조가 있어야 합니다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listview"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
구현. 그런 다음 항목을 표시하는 간단한 어댑터를 만들 수 있습니다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val listItems = listOf("1", "2", "3", "4", "5", "6", "7");
setContentView(R.layout.list_view_layout)
val listview : ListView = findViewById(R.id.listview)
val myAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, listItems)
listview.adapter = myAdapter
}
}
Android 프로젝트의 코드를 살펴보고 싶다면 다음 예제가 포함된 저장소가 있습니다. RecyclerView vs ListView
Reference
이 문제에 관하여(RecyclerView 또는 ListView? : Kotlin의 장단점 및 예), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/jbc7ag/recyclerview-or-listview-pros-cons-and-examples-with-kotlin-2nb2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
implementation 'androidx.recyclerview:recyclerview:1.1.0'
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
class listAdapter(val data: List<String>): RecyclerView.Adapter<listAdapter.MyViewHolder> (){
class MyViewHolder(val textView: TextView) : RecyclerView.ViewHolder(textView)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val textView = LayoutInflater.from(parent.context)
.inflate(android.R.layout.simple_list_item_1, parent, false) as TextView
return MyViewHolder(textView)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.textView.text = data[position];
}
override fun getItemCount() = data.size
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val listItems = listOf("1", "2", "3", "4", "5", "6", "7");
setContentView(R.layout.activity_main)
val myManager: RecyclerView.LayoutManager = LinearLayoutManager(this)
val myAdaapter: RecyclerView.Adapter<*> = listAdapter(listItems)
val recyclerView: RecyclerView = findViewById(R.id.recyclerView);
recyclerView.layoutManager = myManager;
recyclerView.adapter = myAdaapter;
recyclerView.setHasFixedSize(true);
}
}
간단한 목록 보기의 경우 너무 많은 코드가 필요하지 않습니다. 먼저 모든 레이아웃에 ListView 참조가 있어야 합니다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listview"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
구현. 그런 다음 항목을 표시하는 간단한 어댑터를 만들 수 있습니다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val listItems = listOf("1", "2", "3", "4", "5", "6", "7");
setContentView(R.layout.list_view_layout)
val listview : ListView = findViewById(R.id.listview)
val myAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, listItems)
listview.adapter = myAdapter
}
}
Android 프로젝트의 코드를 살펴보고 싶다면 다음 예제가 포함된 저장소가 있습니다. RecyclerView vs ListView
Reference
이 문제에 관하여(RecyclerView 또는 ListView? : Kotlin의 장단점 및 예), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jbc7ag/recyclerview-or-listview-pros-cons-and-examples-with-kotlin-2nb2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)