Отображение кнопки удаления при пролистывании в виде списка для Android
Разбираясь в другом вопросе Stackoverflow, я реализовал некоторый код обнаружения жестов, чтобы я мог определить, когда была проведена прокрутка строки в моем просмотре списка (который находится в FrameLayout). Я следовал за вопросом / ответом Дамиана здесь о том, как получить отдельную строку / вид из адаптера. Как получить местоположение (на экране) строки в просмотре списка
У меня есть код в моем onFling, который получает представление для строки и пытается сделать видимой кнопку удаления, которая установлена в моем макете xml как невидимая. Однако этого не происходит. Мне было интересно, как я делаю кнопку видимой в просмотре списка при пролистывании?
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
try {
if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
int itemId = MyClass.this.lv.pointToPosition(
(int) e1.getX(), (int) e1.getY());
Log.v("item id", String.valueOf(itemId));
View v = MyClass.this.adapter
.getViewOnScreen(itemId);
Button delete = (Button) v.findViewById(R.id.button_delete);
delete.setVisibility(View.VISIBLE);
//MyClass.this.adapter.notifyDataSetChanged();
}
} catch (Exception e) {
// nothing
}
return false;
}
}
Мой код адаптера списка такой же, как и указанный вопрос.
Изменить: я попытался использовать getChildAt () в просмотре списка, чтобы получить представление строки, и это работает, когда имеется один экран или меньше элементов, но когда возвращается больше, чем неправильное представление и, следовательно, неправильная кнопка удаления становится видимым
Изменить 2: я использовал ответ на вопросВот заставить его работать: