RecyclearView 요소 순환

4556 단어 RecyclerViewAndroid

개요


다음은 요소 순환 RecyclearView를 설치하는 방법에 대해 설명합니다.

왜 요소를 순환시키려고 합니까?


한 손으로 안드로이드 스마트폰을 조작할 때 화면이 가로로 배치된 리시클리어뷰에 일렬 요소를 배열하면 오른손잡이가 왼쪽에 놓인 요소를 클릭하기 어려울 것 같다.요소 순환을 이룰 수 있다면 왼쪽 요소를 오른쪽으로 굴려 다시 클릭할 수 있어 편리하지 않겠나.

RecyclearView 요소는 어떻게 구성하시겠습니까?


나는 이런 느낌의 RecyclearView를 만들고 싶다.RecyclearView의 요소는 처음에 0, 마지막에 ∞이다.

∞ 다음은 0.

어떻게 실현합니까?


아래의 Answer에 따라 설치하면 간단합니다.
  • How do I create a circular (endless) RecyclerView?
  • 아, 생각해 봐, 어댑터.GetItemCount에 대해 매우 큰 값을 설정했습니다, 어댑터.onBindViewHolder는 다음과 같은 방법으로 Item을 제거합니다.엄밀히 말하면 순환하는 것은 아니지만, 통상적으로 사용하는 것은 아무런 문제가 없다.

    운영 환경


    항목

    Android OS
    6.0
    compileSdkVersion
    25
    buildToolsVersion
    25.0.3
    Programming Language
    Java

    이루어지다


    다음 3단계에서 가능합니다.RecyclerView.Adapter를 수정하기만 하면 특별한 프로그램 라이브러리가 필요하지 않습니다.
  • RecyclerView.Adapter.getItemCount의 반환 값을 극단적으로 큰 값으로 설정하기
  • RecyclerView.Adapter.onBindViewHolder, position은 0-items입니다.크기 ()까지의 범위 내
  • 초기 위치를 중앙으로 이동
  • 1. RecyclerView.Adapter.getItemCount의 반환 값을 매우 큰 값으로 설정합니다.


    이러한 Stackoverflow의 예는 Integer입니다.MAX_VAL UE 가 지정되어 있습니다.아주 큰 값이라면 무엇이든지 좋습니다.
    @Override
    public int getItemCount() {
        return Integer.MAX_VALUE;
    }
    

    2. RecyclerView.Adapter.onBindViewHolder, position은 0-items입니다.크기 ()까지 범위 내


    position에 매우 큰 값이 있기 때문에 RecyclearView의 Item의 개수를 최대치로 받습니다.Position을 Items를 사용하는 요소의 수를 나눈 나머지 수로 수정합니다.
    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {
        final Item item = items.get(position % items.size());
        //...
    

    3. 초기 위치를 가운데로 이동


    RecyclearView의 초기 위치를 중앙으로 잘못 이동함으로써 좌우 두 방향으로 굴러가도 끝이 보이지 않는 느낌을 준다.
    초기 위치는 LayoutManager로 설정됩니다.scrollToPosition(int)은 가능합니다.
    final LinearLayoutManager layoutManager
                    = new LinearLayoutManager(activityContext, LinearLayoutManager.HORIZONTAL, false);
    recyclerView.setLayoutManager(layoutManager);
    layoutManager.scrollToPosition(Adapter.mediumPosition());
    

    총결산


    RecyclerView.어댑터를 수정하기만 하면 요소 순환을 위한 RecyclearView를 사용할 수 있습니다.한 손으로 양쪽 요소를 가볍게 두드리려 할 때 유용하다.

    링크

  • 차분 수정(GiitHub)
  • How do I create a circular (endless) RecyclerView?
  • 좋은 웹페이지 즐겨찾기