Düzeninde, hızlı kaydırma özelliğini destekleyen bir ListView içeren bir uygulama yazdım (yani kaydırma çubuğu kaydırıcısını sürükleyerek listeyi hızlıca yukarı veya aşağı kaydırmanızı sağlar). Bu Jelly Bean (4.1-4.3) tüm sürümünde mükemmel çalıştı. Ancak, Kit Kat'a güncelledikten sonra, hızlı kaydırma artık çalışmıyor ve kaydırma çubuğum sadece normal bir kaydırma çubuğu. Ancak, uygulamamı kapatıp tekrar açarsam hızlı kaydırma görünür. Kit Kat'ta sürekli çalışmak için hızlı kaydırmayı nasıl alabilirim? Ben; kopyalanıp aşağıda benim liste görünümü adaptör kodu yapıştırılan ettik:Android'de Hızlı Kaydırma İle İlgili Sorunlar
// 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;
}
}
Bu yüzden yıldız eklemek için çekinmeyin hakkında bir hata açtı. https://code.google.com/p/android/issues/detail?id=63545&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars –
Benim için aynı sorun – JeffG
Bu, Android v4'te çözülmüş görünüyor. 4.3. – mikejonesguy