2017-10-13 1 views
-3

카드보기의 Recyclerview 목록에서 스크롤하면 두 개 이상의 카드를 스크롤하는 것보다 빠르게 스크롤 할 수 있습니다. 사용자가 스크롤 할 때 얼마나 많은 양의 현재 카드 만 보여줄 필요가 있습니다 안드로이드에 적용. 나는 봤지만 해결책을 얻지 못했다.
내 코드를 도와 주셔서 감사 MyRecyclerView 및 LinearLayoutManager 당신은 재활용 화면의 상단에 표시하도록 선택한 항목을 이동 linearLayoutManager.Use의 줄을 개체를 사용하여이를 달성 할 수있는 라인을Recyclerview의 다음 카드보기 만 스크롤합니다. 적용된 스크롤의 양도

MyRecyclerView = (RecyclerView) view.findViewById(R.id.cardView); 
MyRecyclerView.setHasFixedSize(true); 
LinearLayoutManager MyLayoutManager = new LinearLayoutManager(getActivity()); 
    MyLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); 
    if (listitems.size() > 0 & MyRecyclerView != null) { 
     MyRecyclerView.setAdapter(new MyAdapter(listitems)); 
    } 
    MyRecyclerView.setLayoutManager(MyLayoutManager); 
+3

에 따라 달라집니다? –

답변

0

1. 당신은 smoothScrollToPosition(int position)

는 어댑터 위치로 부드러운 스크롤을 시작 사용해야합니다.

recyclerview.smoothScrollToPosition(position); 

2. 사용 scrollToPosition()

void scrollToPosition (int position)

편리한 방법은 특정 위치로 이동합니다. RecyclerView 오히려

RecyclerView.scrollToPosition(postion) 

3.rv.getLayoutManager().scrollToPosition(youPositionInTheAdapter).

4.scrollToPositionWithOffset()

void scrollToPositionWithOffset (int position,int offset)

에 대한 호출이 전달 논리를 스크롤 구현하지 않습니다

해결 된 레이아웃 시작에서 지정된 오프셋을 사용하여 지정된 어댑터 위치로 스크롤합니다. 해결 된 레이아웃의 시작은 getReverseLayout(), getLayoutDirection(android.view.View) 당신이 달성하려고하는 것을 실제로 getStackFromEnd().

linearLayoutManager.scrollToPositionWithOffset(1, 10);