Android RecyclerView 빠 른 스크롤 을 위 한 예제 코드

단평:Android Support Library 26 에서 드디어 기다 린 기능 을 실 현 했 습 니 다:RecyclerView 의 빠 른 스크롤.
Android 공식 적 으로 개발 자 들 에 게 ListView 대신 RecyclerView 를 사용 하 라 고 권 고 했 습 니 다.RecyclerView 도 ListView 보다 좋 은 모습 을 보 였 습 니 다.빠 른 스크롤 이 없 는 것 을 제외 하고 아래 와 같 습 니 다.

따라서 이전에 RecyclerView 에서 빠 른 스크롤 을 실현 하려 면 제3자 라 이브 러 리 에 의존 하 는 경우 가 많다.예 를 들 어FutureMind/recycler-fast-scroll또는timusus/RecyclerView-FastScroll이다.
이제 RecyclerView 는 네 이 티 브 로 빠 른 스크롤 을 지원 하 게 되 었 습 니 다.이제 어떻게 실현 되 는 지 살 펴 보 겠 습 니 다.
우선,build.gradle 에 의존 도 를 추가 합 니 다:

dependencies {
  ....
  compile 'com.android.support:design:26.0.2'
  compile 'com.android.support:recyclerview-v7:26.0.2'
  ....
}
Support Library 는 버 전 26 부터 Google 의 maven 창고 로 옮 겨 졌 으 며,Google 은 앞으로 모든 창 고 를 http://maven.google.com로 만 발표 할 계획 입 니 다.따라서 Google Maven 창 고 는 공식 매 뉴 얼 을 참고 해 야 합 니 다.
이제 RecyclerView 의 빠 른 스크롤 을 어떻게 실현 하 는 지 살 펴 보 자.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  app:layout_behavior="@string/appbar_scrolling_view_behavior"
  tools:context="com.shaishavgandhi.fastscrolling.MainActivity"
  tools:showIn="@layout/activity_main">


 <android.support.v7.widget.RecyclerView
  android:id="@+id/recyclerView"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  app:fastScrollEnabled="true"
  app:fastScrollHorizontalThumbDrawable="@drawable/thumb_drawable"
  app:fastScrollHorizontalTrackDrawable="@drawable/line_drawable"
  app:fastScrollVerticalThumbDrawable="@drawable/thumb_drawable"
  app:fastScrollVerticalTrackDrawable="@drawable/line_drawable">

 </android.support.v7.widget.RecyclerView>

</android.support.constraint.ConstraintLayout>

그 중 몇 가지 속성 이 증가:
  • fastScroll Enabled:boolean 형식 으로 빠 른 스크롤 을 사용 할 지 여 부 를 결정 합 니 다.true 로 설정 할 때 아래 의 네 가지 속성 을 설정 해 야 합 니 다.
  • fastScrollHorizontal ThumbDrawable:수평 스크롤 블록.
  • fastScrollHorizontal TrackDrawable:수평 스크롤 바 배경.
  • fastScroll Vertical ThumbDrawable:수직 스크롤 블록.
  • fastScroll Vertical TrackDrawable:세로 스크롤 바 배경.
  • 다음은 구체 적 인 drawable:
    line_drawable.xml
    
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item
        android:state_pressed="true"
        android:drawable="@drawable/line"/>
    
      <item
        android:drawable="@drawable/line"/>
    </selector>
    
    
    line.xml
    
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
    
      <solid android:color="@android:color/darker_gray" />
    
      <padding
        android:top="10dp"
        android:left="10dp"
        android:right="10dp"
        android:bottom="10dp"/>
    </shape>
    
    
    thumb_drawable.xml
    
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item
        android:state_pressed="true"
        android:drawable="@drawable/thumb"/>
    
      <item
        android:drawable="@drawable/thumb"/>
    </selector>
    
    
    thumb.xml
    
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
    
      <corners
        android:topLeftRadius="44dp"
        android:topRightRadius="44dp"
        android:bottomLeftRadius="44dp" />
    
      <padding
        android:paddingLeft="22dp"
        android:paddingRight="22dp" />
    
      <solid android:color="@color/colorPrimaryDark" />
    
    </shape>
    
    
    효 과 는 다음 과 같 습 니 다:

    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기