Generalidades

Desliza para borrar / editar Kotlin. Para criarmos a ação de swipe to delete … | Autor: Gabriel Novakowski Nunes | Diciembre de 2021

Gabriel Novakowski Núñez
1*XW flzIELOoOlzSODwF3pg
Foto tomada por Masakaze Kawakami en Unsplash

Para criarmos a ação de swipe to delete na Vista de reciclador, crisamos criar uma classe SwipeToActionCallback, que irá estender de ItemTouchHelper.SimpleCallback.Ou seja, iremos implementando um comportamento para una acción de deslizamiento para otro lado.

SwipeToActionCallback

Repare que temos o controle de para qual lado foi feito o swipe, podemos deploymentar isso da maneira que necessitarmos.

Após criarmos o callback, precisamos junta-lo a nossa Vista de reciclador. Para isso, criaremos uma variável que inicializa o ItemTouchHelper e passaremos nosso callback como parámetros. Depois de cria-lo, vamos informar ao ItemTouchHelper igual Vista de reciclador Elwa atual.

Clip principal / Evento principal

Sin adaptaciónr, también precisamos criar a função de delete que será chamada no llamar de vuelta. Nesta função de delete, iremos salvar o item excluido em memória para usarmos latermente, caso o usuário tenha excluído por engano.

Mi adaptador

Agora, nosso swipe de delete já está funcionando! Iremos adicionar um background e um ícone, para uma UX melhor, eimplementaremos o botão silenciador.

Un variável dx significa una cuantidade de deslocamento horizo ​​ntal hecho pela ação do usuário, ou seja, o quanto o usuário arrastou a linha. Então, dx> 0 significa que o usuário fez o swipe para a direita, dx <0 para a esquerda.

Como vamos a colocar um ícone para cada lado, devemos setar um ícone para cada condición. No hay meu caso, coloquei o ícone de delete para um lado e edit para o outro.

icon = ContextCompat.getDrawable(maintenanceOrdersAdapter.getContext(),
R.drawable.ic_delete_white_24dp)!!
val iconLeft = margin;
val iconRight = margin + icon.intrinsicWidth;

Colocamos os limites do ícone.

icon.setBounds(iconLeft, iconTop, iconRight, iconBottom);

Aqui, colocamos a cor do fundo ao arrastar.

background.color = ContextCompat.getColor(maintenanceOrdersAdapter.getContext(), R.color.swipe_red)

Devemos colocar los límites del fondo.

background.setBounds(                itemView.left, itemView.top,                itemView.left+ dX.toInt() + backgroundCornerOffset,                itemView.bottom

Ao final, devemos chamar o background.draw (c) e icon.draw (c), onde desenharemos na tela todas como configurações que fizemos até agora. Esta es una clase completa:

Iremos implementador o botão desfazer (deshacer) com uma snack bar. Para isso, precisamos de um layout pai, onde snack bar será mostrada. Nesse caso, o coordinator_layout_main é o Layout raiz da MainActivity.

Também colocamos a acción para o snack bar, que será chamada quando o usuário clicar em «desfazer».

Ejemplo de snack bar com desfazer

Un placer Deshacer eliminación somente adiciona a lista novamente aquele item que salvamos em memória ao chamar a função Eliminar elemento.

O resultado final fica assim:

Agora, ao deslizar um item da list temos um feedback muito melhor para o usuário, além de uma feature muito útil em nosso app.

LEER  Thomas 'Bomber' Kavanagh del cartel de Keenahan podría enfrentar 20 años de prisión por importación masiva de drogas

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba