WearableRecyclerView .scrollToPosition不适合穿?

pcj*_*pcj 8 android android-layout android-recyclerview wear-os

我有一组应该在列表中填充的项目,因为我已经使用过了WearableRecyclerView.在某些情况下,我希望特定的项目成为焦点以供选择.我使用scrollToPosition()的方法WearableLinearLayoutManager,但观察名单不滚动到所需的位置,但是用手机上同样的事情RecyclerViewscrollToPosition()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);
Run Code Online (Sandbox Code Playgroud)

这可能会出错?

use*_*169 1

看起来您没有使用在第二行中声明的 WearableLinearLayoutManager 。您将 LayoutManager 设置为新实例,因此调用scrollToPosition 将不起作用。尝试以下操作

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

    slots_rv.setCircularScrollingGestureEnabled(true);

    wearableLinearLayoutManager.scrollToPosition(slotsAdapter.getPositionToFocus());
    slots_rv.setAdapter(slotsAdapter);
Run Code Online (Sandbox Code Playgroud)