Как щелкнуть вне экрана после смахивания записи RecyclerView?
Я реализую RecyclerView с ItemTouchHelper,
Каждая запись в RecyclerView состоит из пользовательского ConstraintLayout с вложенным TextView, ImageView и 2 кнопками. (и пару руководств)
Я использовал ConstraintLayout просто для того, чтобы переопределить onMeasure и изменить его размер, чтобы удвоить размер экрана.
как показано здесь: (ВНИМАНИЕ: " 2 * pureSize " является сердцем этой сущности)
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int pureSize = MeasureSpec.getSize(widthMeasureSpec);
int pureMode = MeasureSpec.getMode(widthMeasureSpec);
super.onMeasure(pureMode+(int)(2*pureSize), heightMeasureSpec);
}
Основная причина заключалась в том, чтобы сделать TextView и ImageView видимыми и оставить кнопки вне экрана, которые будут отображаться только после того, как пользователь проведет пальцем по элементу слева.
как показано в этом GIF:
Однако обе кнопки не работают, как будто они застряли в подвешенном состоянии. как будто они вернулись из мертвых, они присутствуют, но они больше не являются самими собой.
Что происходит с кнопками после пролистывания?
как они могут быть воскрешены?
Могут ли они когда-нибудь быть полезными?
я пытался гуглить эту тему безрезультатно.
ВОЗМОЖНЫЕ ДИЗАЙНЕРСКИЕ АЛЬТЕРНАТИВЫ, КОТОРЫЕ Я ВЫПУСКАЛ:
Перемещение кнопок в левую часть RecyclerView или, что то же самое, уверенность в том, что RecyclerView соответствует размеру экрана, - решите проблему и сделайте их снова жизнеспособными. Но это слишком некрасиво и загромождает экран.
Другим возможным решением будет использование механизма смахивания для инициирования удаления и редактирования непосредственно с помощью ItemTouchHelper.SimpleCallback.onSwiped() в сочетании с AlertDialog. Но опять же, это просто менее свободно, чем я хочу.
Любая помощь в работе этих кнопок будет принята с благодарностью.