我的應用程序使用RecyclerView
與LinearLayoutManager
和LinearSnapHelper
。 在我的應用程序開始時,我希望我的RecyclerView
立即滾動到沒有任何動畫的快照位置。立即捕捉Recyclerview
我知道RecyclerView.smoothScrollToPosition()
但動畫滾動。任何想法如何實現這一目標?謝謝! :)
代碼
搭建RecyclerView
:
mRecyclerRooms = (RecyclerView) mView.findViewById(R.id.recyclerRooms);
mRoomsLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
mRecyclerRooms.setLayoutManager(mRoomsLayoutManager);
mSnapHelperRooms = new LinearSnapHelper();
mSnapHelperRooms.attachToRecyclerView(mRecyclerRooms);
mRecyclerRooms.addOnScrollListener(mRoomScrollListener);
XML爲RecyclerView
:
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerRooms"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:clipToPadding="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
mRoomScrollListener()
來計算距離通過float distanceFromSnap = abs(mSnapHelperRooms.calculateDistanceToFinalSnap(mRecyclerRooms.getLayoutManager(), view)[0]);
,然後扣規模該項目相應地。這個想法是讓項目變得更大,並且當它們靠近應該是RecyclerView
的中心的咬合位置時具有更多的阿爾法。
我試過了,但這甚至不會在我確切的抓取位置附近滾動。你知道爲什麼嗎? –
在這裏發佈你的代碼 –
我想我找到了爲什麼它不能正確滾動。我希望我的物品始終處於「RecyclerView」的中心,爲此我在XML佈局中爲RecyclerView添加了大量填充。這似乎打破了滾動。任何想法如何使它始終捕捉到RecyclerView的中心而不會中斷滾動? –