0

我有一个GridView使用 anArrayAdapter来填充其内容的布局。我想利用快速滚动,因此添加了以下归因于布局 XML 的内容:

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

我现在可以使用快速滚动来导航,但现在想添加一个材质缩略图预览:

快速滚动拇指预览

据我了解,我将不得不SectionIndexer从我的接口实现ArrayAdapter

class exampleArrayAdapter extends ArrayAdapter<...> implements SectionIndexer

在这一点上,我遇到了一个障碍,无法弄清楚如何获得拇指预览,并且担心我可能做错了什么。关于如何让这个工作或我应该查找什么的指针将不胜感激。

4

1 回答 1

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. 您的用例可能会有所不同。

我实现它的源代码可在此处获得,特别是在提交时:

  • a2c9ddd1c647919afbf24262ac1a7772a08e468c
  • 08802e17f4c75835c28232353fed68964f5d7746
  • 0d73a788c6b92d7b9c05a2871778da42af02afd8
  • f13a59f02690481801bd07ffc593648b8e71d036
于 2017-04-03T09:01:07.793 回答