Material 使用 GridView 和 ArrayAdapter 快速滚动拇指
Material fastscroll thumb with GridView and ArrayAdapter
我有一个 GridView
布局,它使用 ArrayAdapter
来填充其内容。我想利用快速滚动,因此在布局中添加了以下属性 XML:
android:fastScrollAlwaysVisible="true"
android:fastScrollStyle="@android:style/Widget.Material.FastScroll"
我现在可以使用快速滚动来导航,但现在想添加一个 material 缩略图预览:
根据我的理解,我必须从我的 ArrayAdapter
中实现 SectionIndexer
接口,如下所示:
class exampleArrayAdapter extends ArrayAdapter<...> implements SectionIndexer
在这一点上,我遇到了一个问题,不知道如何获得缩略图预览,担心我可能做错了什么。将不胜感激关于我如何使它工作或我应该查找什么的指示。
我终于有时间回头看看了,结果发现解决方案很琐碎!这就是我所做的:
@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
的列表,并基于它创建了一个要返回的 sections 数组。对于我的需要,我所需要的只是实现 getPositionForSection
而不是 getSectionForPosition
。您的用例可能会有所不同。
我实现它的源代码可用 here,特别是关于提交:
- a2c9ddd1c647919afbf24262ac1a7772a08e468c
- 08802e17f4c75835c28232353fed68964f5d7746
- 0d73a788c6b92d7b9c05a2871778da42af02afd8
- f13a59f02690481801bd07ffc593648b8e71d036
我有一个 GridView
布局,它使用 ArrayAdapter
来填充其内容。我想利用快速滚动,因此在布局中添加了以下属性 XML:
android:fastScrollAlwaysVisible="true"
android:fastScrollStyle="@android:style/Widget.Material.FastScroll"
我现在可以使用快速滚动来导航,但现在想添加一个 material 缩略图预览:
根据我的理解,我必须从我的 ArrayAdapter
中实现 SectionIndexer
接口,如下所示:
class exampleArrayAdapter extends ArrayAdapter<...> implements SectionIndexer
在这一点上,我遇到了一个问题,不知道如何获得缩略图预览,担心我可能做错了什么。将不胜感激关于我如何使它工作或我应该查找什么的指示。
我终于有时间回头看看了,结果发现解决方案很琐碎!这就是我所做的:
@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
的列表,并基于它创建了一个要返回的 sections 数组。对于我的需要,我所需要的只是实现 getPositionForSection
而不是 getSectionForPosition
。您的用例可能会有所不同。
我实现它的源代码可用 here,特别是关于提交:
- a2c9ddd1c647919afbf24262ac1a7772a08e468c
- 08802e17f4c75835c28232353fed68964f5d7746
- 0d73a788c6b92d7b9c05a2871778da42af02afd8
- f13a59f02690481801bd07ffc593648b8e71d036