Внутри моего фрагмента я устанавливаю мой GridLayout следующим образом: mRecycler.setLayoutManager(new GridLayoutManager(rootView.getContext(), 2));
Изменение числа столбцов с GridLayoutManager и RecyclerView
Итак, я просто хочу, чтобы изменить это 2
для 4
когда пользователь поворачивает телефон/таблетки. Я читал о onConfigurationChanged
, и я попытался заставить его работать для моего дела, но это не так. Когда я поворачиваю свой телефон, приложение вылетает ...
Не могли бы вы рассказать мне, как решить эту проблему?
Вот мой подход, чтобы найти решение, которое не работает правильно:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
int orientation = newConfig.orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
mRecycler.setLayoutManager(new GridLayoutManager(mContext, 2));
} else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
mRecycler.setLayoutManager(new GridLayoutManager(mContext, 4));
}
}
Спасибо заранее!
, пожалуйста, добавьте журнал сбоев –
Я только что посмотрел на свой логарифм, и это не вызвало краха. Но он все еще не работает. – fapps
Я бы не создал нового менеджера, но вместо этого использовал существующий. Используйте getLayoutManager() в своем recyclerview, отбросите его в GridLayoutManager. На этом управляющем вызове setSpanCount (ориентация == портрет? 2: 4) И ради перерисовки вызова вида adaper.notifyDatasetChanged() Это должно работать нормально, если ваше представление не перерисовывается каждый раз. –