Я хочу иметь один ListView, который, когда я нажимаю на элемент, выдвигается влево.
Так что я:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
arg1.startAnimation(openAnimation);
}
});
Однако анимация применялась к другому элементу в списке, а не к тому, по которому щелкнули. Поведение кажется случайным, поскольку иногда это происходило с более чем одним элементом одновременно.
Как я и подозревал, это связано с тем, что адаптер повторно использует представление для создания элемента. Я решил изменить метод getView в своем адаптере, чтобы каждый раз при его вызове раздувалось новое представление. Тогда анимация больше не происходит.
Есть ли способ решить эту проблему? Я попытался переместить анимацию внутрь моего адаптера, но тогда я не могу связать ее с другим действием в списке.
В конечном счете, я хочу, чтобы элемент был интерактивным, но при пролистывании влево/вправо открывалась кнопка удаления (поведение iOS при удалении). Я на неправильном пути здесь? Это должно быть возможно, поскольку Android может реализовать смахивание для удаления в панели уведомлений.