Как поменять ориентацию RecyclerView во время выполнения

288
17 ноября 2017, 06:32

Пытаюсь изменить ориентацию на recyclerview во время выполнения по событию onScrolled. Ниже привожу метод onCreate():

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler);
    recyclerView.setAdapter(new MyAdapter(totalItemCount));
    // default orientation is VERTICAL
    gridLayoutManager = new GridLayoutManager(this, spanCount, LinearLayoutManager.VERTICAL, false);
    recyclerView.setLayoutManager(gridLayoutManager);
    RecyclerView.OnScrollListener listener = new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            Log.i("TAG", "current orientation: " + gridLayoutManager.getOrientation());
            if (dx > 0) {
                Log.i("TAG", "dx = " + dx);
                recyclerView.post(new Runnable() {
                    @Override
                    public void run() {
                        gridLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
                    }
                });
            } else if (dy > 0) {
                Log.i("TAG", "dy = " + dy);
                recyclerView.post(new Runnable() {
                    @Override
                    public void run() {
                        gridLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
                    }
                });
            }
            recyclerView.setLayoutManager(gridLayoutManager);
        }
    };
    recyclerView.addOnScrollListener(listener);
}

Данный код выполняется без ошибок но и ориентация не меняется. Возможно ли как то поменять ориентацию во время выполнения? Благодарю за помощь.

READ ALSO
Проверка строки содержащей число

Проверка строки содержащей число

Имеется 3 textField, в которые нужно вводить только целые или дробные числаПо нажатию кнопки произвожу вычисления с числами, вытянутыми из textField'ов,...

289
Таймер JAVA android

Таймер JAVA android

Вопрос такой: Нужно сделать так, чтобы int раз в 5 секунд меняла своё значение(В начале 0, через 5 секунд - 1, 1 на одну секунду, потом опять 0 и так...

256
Поддержка Java в VS Code

Поддержка Java в VS Code

Здравствуйте! В общем пытаюсь настроить VS Code для компиляции java-файловУстановил расширения:

315
java.net.SocketException: Broken pipe (Write failed)

java.net.SocketException: Broken pipe (Write failed)

У меня есть приложение Java (Server + Client), случайным образом я получаю в логе сервера такую ошибку при загрузке файлов клиентом:

306