내 응용 프로그램은 LinearLayoutManager
및 LinearSnapHelper
을 사용하여 RecyclerView
을 사용합니다. 내 앱의 시작 부분에서 내 RecyclerView
이 즉시 애니메이션없이 스냅 위치로 스크롤되기를 원합니다.바로 recyclerview
나는 RecyclerView.smoothScrollToPosition()
을 알고 있지만 스크롤을 움직입니다. 어떤 아이디어가 이것을 달성하는 방법? 감사!
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
의 중심이되어야하는 스냅 위치 근처에있을 때 항목이 커지고 알파가 더 커지도록하는 것입니다. 이
recyclerViewList.scrollToPosition(position);
나는 그것을 시험해 보았지만, 그것은 나를 위해 정확한 스냅 위치 근처에서 스크롤하지도 않는다. 왜 그런지 알아? –
여기에 코드를 게시하십시오. –
왜 제대로 스크롤하지 않는지 알게되었습니다. 내 항목이 항상 'RecyclerView'의 중심에 맞추기를 원한다. 그리고 XML Layout의 RecyclerView에 거대한 패딩을 추가했다. 그건 스크롤을 깨는 것 같습니다. 어떻게하면 스크롤을 깨지 않고도 항상 RecyclerView의 중심에 스냅하는 것이 좋습니다. –