Middle
RecyclerView-də sütunların sayını necə dəyişdirmək olar ki, portret rejimində bir sütun, landşaft rejimində isə iki və ya daha çox sütun göstərilsin?
sobes.tech Süni İntellekt
AI-dan cavab
Siz GridLayoutManager istifadə edə bilərsiniz.
Ekran yönünə görə sütunların sayını dəyişdirmək üçün:
- Cihazın cari yönünü əldə edin.
- Yönə görə, lazım olan sütun sayısı ilə
GridLayoutManageryaradın və onuRecyclerViewüçün təyin edin.
Nümunə:
// RecyclerView istifadə olunan fəaliyyət və ya fragmentdə
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
updateColumnCount(newConfig.orientation)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// ... RecyclerView-in başlanğıcı ...
updateColumnCount(resources.configuration.orientation)
}
private fun updateColumnCount(orientation: Int) {
val spanCount = if (orientation == Configuration.ORIENTATION_PORTRAIT) {
1 // Portret rejimində bir sütun
} else {
2 // Landşaft rejimində iki sütun
// Digər dəyər də istifadə oluna bilər, məsələn 3, 4 və s.
}
recyclerView.layoutManager = GridLayoutManager(this, spanCount)
}
Həmçinin, müxtəlif yönlər üçün resurslarda (dimens.xml) sütunların sayını təyin edə bilərsiniz:
res/values/dimens.xml yaradın:
<resources>
<integer name="grid_span_count">1</integer>
</resources>
res/values-land və ya res/values-sw600dp-land (planşetlər üçün) dimens.xml yaradın:
<resources>
<integer name="grid_span_count">2</integer>
</resources>
Və sonra bu resursu kodda istifadə edin:
recyclerView.layoutManager = GridLayoutManager(this, resources.getInteger(R.integer.grid_span_count))
Bu yanaşma daha çevikdir, çünki sütunların sayını asanlıqla dəyişdirməyə imkan verir, kodu dəyişmədən.