Ich möchte ein ListView haben, dass, wenn ich auf das Element klicke, die Ansicht nach links gleitet. SoWie animiert man das Objekt in ListView, wenn man darauf klickt?
ich habe:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
arg1.startAnimation(openAnimation);
}
});
jedoch Animation auf das verschiedene Element in der Liste angewandt statt der angeklickt auf. Das Verhalten scheint zufällig zu sein, da es manchmal zu mehr als einem Objekt gleichzeitig passiert ist.
Wie ich vermutete, ist dies wegen der Art und Weise, wie der Adapter wieder verwendet wird, um das Element zu erstellen. Ich ging, um die getView-Methode in meinem Adapter zu ändern, um jedes Mal, wenn es aufgerufen wird, die neue Ansicht aufzublähen. Dann kommt die Animation nicht mehr vor.
Gibt es eine Möglichkeit, dies zu beheben? Ich habe versucht, die Animation in meinen Adapter zu verschieben, aber dann kann ich sie nicht mit anderen Aktionen in der Listview verknüpfen.
Schließlich möchte ich das Element anklickbar sein, aber beim Streichen nach links/rechts zeigen Sie die Schaltfläche Löschen (iOS Verhalten löschen). Bin ich hier auf der falschen Spur? Dies sollte jedoch möglich sein, da Android Swipe zum Entfernen in der Benachrichtigungsleiste implementieren kann.
"iOS-Löschverhalten" NEIN NEIN NEIN NEIN! Android ist kein iOS! Bitte verwenden Sie keine iOS-Designmuster. Android-Nutzer erwarten und Android User Experience NICHT und iPhone erleben. – slayton
Ich verstehe Ihre Bedenken. Ich bin total gegen diese Idee. Aber ich bin nicht diejenige, die hier eine Entscheidung trifft. Aber du musst es zugeben, wischen, um zu entfernen, gibt es auf Android. Die Implementierung ist da, nur unterschiedliche Darstellung. – RobGThai
Das Benachrichtigungsfenster verfügt wahrscheinlich über eine benutzerdefinierte Implementierung einer Listenansicht, da die grundlegende Listenansichtsklasse dieses Streichen zum Löschen des Verhaltens nicht unterstützt. – slayton