2017-05-12 24 views
0

我的應用程序使用RecyclerViewLinearLayoutManagerLinearSnapHelper。 在我的應用程序開始時,我希望我的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的中心的咬合位置時具有更多的阿爾法。

回答

0

使用此

recyclerViewList.scrollToPosition(position); 
+0

我試過了,但這甚至不會在我確切的抓取位置附近滾動。你知道爲什麼嗎? –

+0

在這裏發佈你的代碼 –

+0

我想我找到了爲什麼它不能正確滾動。我希望我的物品始終處於「RecyclerView」的中心,爲此我在XML佈局中爲RecyclerView添加了大量填充。這似乎打破了滾動。任何想法如何使它始終捕捉到RecyclerView的中心而不會中斷滾動? –