Middle
Ինչպե՞ս փոխել RecyclerView-ի սյունակների քանակը, որպեսզի հորիզոնական դիրքում ցուցադրվի մեկ սյունակ, իսկ ուղղահայաց դիրքում՝ երկու կամ ավելի սյունակ:
sobes.tech AI
Պատասխան AI-ից
Դուք կարող եք օգտագործել GridLayoutManager:
Տեսք՝ ինչպես փոխել սյունակների քանակը էկրանի ուղղությամբ՝
- Ստացեք սարքի ընթացիկ ուղղությունը:
// RecyclerView օգտագործող ակտիվության կամ ֆրագմենտի մեջ
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-ի ինիցիալիզացիա ...
updateColumnCount(resources.configuration.orientation)
}
private fun updateColumnCount(orientation: Int) {
val spanCount = if (orientation == Configuration.ORIENTATION_PORTRAIT) {
1 // Մի սյունակ պորտրեյտ ուղղությամբ
} else {
2 // Երկու սյունակ լանդշաֆտ ուղղությամբ
// Կարող եք օգտագործել այլ արժեք, օրինակ՝ 3, 4 և այլն
}
recyclerView.layoutManager = GridLayoutManager(this, spanCount)
}
- Հետո՝ ըստ ուղղության, ստեղծեք
GridLayoutManager՝ անհրաժեշտ սյունակների քանակով և սահմանեք այնRecyclerView-ի համար:
// Օրինակ՝ activity կամ fragment-ում, որտեղ օգտագործվում է RecyclerView
recyclerView.layoutManager = GridLayoutManager(this, spanCount)
Այսպիսով՝ կարող եք նաև սահմանել սյունակների քանակը ռեսուրսներում (dimens.xml) տարբեր ուղղությունների համար:
res/values/dimens.xml ստեղծեք՝
<resources>
<integer name="grid_span_count">1</integer>
</resources>
res/values-land կամ res/values-sw600dp-land (տաբլետների համար) dimens.xml ստեղծեք՝
<resources>
<integer name="grid_span_count">2</integer>
</resources>
Եվ այդ ռեսուրսը օգտագործեք կոդում՝
recyclerView.layoutManager = GridLayoutManager(this, resources.getInteger(R.integer.grid_span_count))
Այս մոտեցումը ավելի ճկուն է, քանի որ հեշտ է փոփոխել սյունակների քանակը՝ առանց կոդը փոխելու։