WearableRecyclerView .scrollToPosition не работает на износ? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть набор элементов, которые должны быть заполнены в списке, для этого я использовал WearableRecyclerView. В некоторых случаях я хочу, чтобы определенные элементы были в фокусе для выбора. Я использую scrollToPosition() метод WearableLinearLayoutManager, но список просмотра не прокручивается до нужной позиции, но то же самое на мобильном телефоне, используя RecyclerView и scrollToPosition() из LinearLayoutManager, для которого установлено RecyclerView работа и прокрутка до нужной позиции.

Мой код на износ часов:

    WearableRecyclerView slots_rv = findViewById(R.id.slots_rv);
 .....


        WearableLinearLayoutManager wearableLinearLayoutManager =
            new WearableLinearLayoutManager(this, customScrollingLayoutCallback);
    slots_rv.setLayoutManager(
            wearableLinearLayoutManager);
    slots_rv.setCircularScrollingGestureEnabled(true);
    wearableLinearLayoutManager.scrollToPosition(slotsAdapter.getPositionToFocus());
    slots_rv.scrollToPosition(slotsAdapter.getPositionToFocus());
    slots_rv.getLayoutManager().scrollToPosition(slotsAdapter.getPositionToFocus());
    slots_rv.setAdapter(slotsAdapter);

Что здесь может пойти не так?

1 Ответ

0 голосов
/ 04 сентября 2018

Похоже, вы не используете WearableLinearLayoutManager, который вы объявили во 2-й строке. Вы устанавливаете LayoutManager на новый экземпляр, поэтому вызов scrollToPosition не будет работать. Попробуйте следующее

    WearableLinearLayoutManager wearableLinearLayoutManager = new WearableLinearLayoutManager(this, customScrollingLayoutCallback);
    slots_rv.setLayoutManager(wearableLinearLayoutManager);

    slots_rv.setCircularScrollingGestureEnabled(true);

    wearableLinearLayoutManager.scrollToPosition(slotsAdapter.getPositionToFocus());
    slots_rv.setAdapter(slotsAdapter);
...