Android действительно определяет строковое значение для разной ориентации экрана

У меня в разводке есть 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.

Я не хочу определять два файла макета. Могу ли я определить для него файл с двумя значениями?

0
0
64
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы можете создавать папки с разными значениями, например

'ценности' и 'ценности-земля'

затем создайте файлы ресурсов целых чисел (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'

Другие вопросы по теме