0

ArrayAdapter을 사용하여 내용을 채우는 GridView 레이아웃이 있습니다. 나는 빠르게 스크롤의 사용을 만들고 싶어 등이 추가로는 레이아웃 XML에 기인 다음 :GridView 및 ArrayAdapter를 사용하는 머티리얼 패스트 푸시 썸

android:fastScrollAlwaysVisible="true"   
android:fastScrollStyle="@android:style/Widget.Material.FastScroll" 

내가 지금 탐색 빠른 스크롤의 사용을 할 수 있어요하지만 지금은 재료 엄지 손가락을 추가하고 싶습니다 같은 미리보기 :

나의 이해에서

fastscroll thumb preview

, I는 나의 ArrayAdapter에서 SectionIndexer 인터페이스를 구현해야합니다 :

class exampleArrayAdapter extends ArrayAdapter<...> implements SectionIndexer 

이 시점에서, 나는 범프에 도달했으며 엄지 미리보기를 얻는 방법을 알 수 없으며 잘못된 일을하고 있을지도 모릅니다. 포인터가 어떻게 작동하는지 알 수 있을까요?

답변

1

나는 마침내 이것을 되돌아 볼 시간이 있었고, 그 해결책은 매우 사소한 것으로 판명되었습니다! 이것은 내가 무슨 짓을 :

@Override 
public Object[] getSections() { 
    ArrayList<String> labels = new ArrayList<>(); 
    for (LaunchableActivity activity: mActivityInfos) { 
     labels.add(activity.getActivityLabel()); 
    } 

    return labels.toArray(); 
} 

@Override 
public int getPositionForSection(int i) { 
    return i; 
} 

@Override 
public int getSectionForPosition(int i) { 
    // We do not need this 
    return 0; 
} 

내가 LaunchableActivity의 목록을 가지고와 그의를 기반으로 반환하는 부분 배열을 만들었습니다. 내 필요에 따라 getPositionForSection을 구현하고 getSectionForPosition을 구현하는 것이 아닙니다. 유스 케이스가 다를 수 있습니다.

나는이 구체적으로 커밋에 사용할 수 here이다 구현 된 소스 코드 :

  • a2c9ddd1c647919afbf24262ac1a7772a08e468c
  • 08802e17f4c75835c28232353fed68964f5d7746
  • 0d73a788c6b92d7b9c05a2871778da42af02afd8
  • f13a59f02690481801bd07ffc593648b8e71d036