Erhalten Sie die Position des Bildes auf Galerieview beim Wischen?
-
13-10-2019 - |
Frage
Wie kann ich die Position des aktuellen Bildes in der Galerieansicht erhalten, während es wischt?
Lösung
Ich denke also nicht, dass dies aufgrund der Art und Weise, wie Adapteransichten funktionieren, möglich ist. Grundsätzlich müssen die meisten, wenn nicht alle Anrufe des Adapter -Adapters der Adapteransicht auf dem UI -Thread sein, um ordnungsgemäß zu funktionieren. Und die Animation ist definitiv auf dem UI -Thread. Da beide nicht gleichzeitig im selben Thread stattfinden, können Sie die Position nicht (genau) lesen, bis die Wischanimation vorbei ist.
Wenn Sie den Adapter GetSelectedItemposition () auf einem anderen Thread bitten, kann Sie die aktuelle Position erhalten, aber für einige Zeit auch abgeschlossen sein, da ich vermute, dass der UI -Thread den Wert aktualisieren wird, ohne nach einer exklusiven Sperre zu überprüfen.
Andere Tipps
Wir können die Position einholen, wenn wir das Bild in der Galerieansicht wischen. setOnItemSelectedListener
.
Wir haben zwei Methoden von diesem Zuhörer mögen
avatar_gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent,
View view,
int position,
long id){
Log.v("Selected", ""+position);
}
@Override
public void onNothingSelected(AdapterView<?> parent){
}
}