Отображение кнопки удаления при пролистывании в виде списка для 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 () в просмотре списка, чтобы получить строку 'с, и это работает, когда есть один экран или меньше элементов, но когда естьs больше, чем неправильное представление, и, следовательно, неправильная кнопка удаления становится видимой.
Изменить 2: я использовал ответ на вопросВот заставить его работать: