Ich schrieb eine App, die ein ListView in seinem Layout enthält, das schnelles Scrollen unterstützt (d. H. Das Ziehen des Scrollbalken-Schiebereglers ermöglicht das schnelle Scrollen in der Liste). Dies funktionierte perfekt in allen Versionen von Jelly Bean (4.1-4.3). Nachdem ich jedoch auf Kit Kat aktualisiert habe, funktioniert das schnelle Scrollen nicht mehr, und meine Bildlaufleiste ist nur eine normale Bildlaufleiste. Wenn ich jedoch aus meiner App aus und wieder zurück gehe, erscheint ein schneller Bildlauf. Wie kann ich schnell scrollen, um in Kit Kat konsequent zu arbeiten? Ich; ve kopiert und meine Listenansicht Adapter Code unten eingefügt:Probleme mit Fast Scroll in Android 4.4
// Adds section popup for fast scroll
class NameListAdapter extends SimpleAdapter implements SectionIndexer {
HashMap<String, Integer> alphaIndexer;
private String[] sections;
private ArrayList<String> sectionList;
private List<HashMap<String, String>> data = null;
public NameListAdapter (Context context, List<HashMap<String, String>> data,
int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
alphaIndexer = new HashMap<String, Integer>();
sectionList = new ArrayList<String>();
this.data = data;
int size = data.size();
for (int i = 0; i < size; i++) {
HashMap<String, String> myData = (HashMap <String, String>) data.get(i);
// Get first character
String ch = myData.get("name").substring(0, 1);
// Convert character to upper case
ch = ch.toUpperCase();
// Put first char/index into our HashMap
if (!alphaIndexer.containsKey(ch)) {
alphaIndexer.put(ch, i);
sectionList.add(ch);
}
}
sections = new String[sectionList.size()];
sectionList.toArray(sections);
}
@Override
public int getPositionForSection(int section) {
if (section >= sections.length) {
return getCount() - 1;
}
return alphaIndexer.get(sections[section]);
}
@Override
public int getSectionForPosition(int pos) {
if (pos > data.size()) {
return 0;
}
HashMap<String, String> myData = (HashMap <String, String>) data.get(pos);
String ch = myData.get("name").substring(0, 1);
// Convert character to upper case
ch = ch.toUpperCase();
for (int i = 0; i < sectionList.size(); i++) {
if (sectionList.get(i).equals(ch)) {
return i;
}
}
return 0;
}
@Override
public Object[] getSections() {
return sections;
}
}
ich einen Fehler über geöffnet dies so fühlen sich frei, es zu spielen. https://code.google.com/p/android/issues/detail?id=63545&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars –
Das gleiche Problem für mich – JeffG
Dies scheint in Android v4 gelöst werden. 4.3. – mikejonesguy