У меня в разводке есть RecyclerView, и я использую для него GridLayoutManager.
<android.support.v7.widget.RecyclerView
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
app:layoutManager = "android.support.v7.widget.GridLayoutManager"
app:spanCount = "3" />
Теперь я хочу показать разное количество элементов в одной строке. Например, если ориентация экрана пользователя - это порт, spanCount равен 3 или 6.
Я не хочу определять два файла макета. Могу ли я определить для него файл с двумя значениями?
вы можете создавать папки с разными значениями, например
'ценности' и 'ценности-земля'
затем создайте файлы ресурсов целых чисел (integers.xml) в обеих указанных выше папках с такими ресурсами
в ценностях
<resources><integer name = "grid_columns">3</integer></resources>
в стране ценностей
<resources><integer name = "grid_columns">5</integer></resources>
затем в вашем диспетчере gridlayout вызовите целочисленное значение, подобное этому
////setting grid size from values/integers (pre defined for each size)
int spanCount = getResources().getInteger(R.integer.grid_columns);
////get layout manager for recyclerView in grid layout manager span count 2 means 2 columns
GridLayoutManager layoutManager = new GridLayoutManager(getContext(), spanCount);
таким образом для пейзажа он выберет 'values-land', а для портрета он выберет 'values'