Stavo guardando il codice generato di ButterKnife e ho notato che per le annotazioni @OnClick
viene utilizzato un DebouncingOnClickListener
, implementato dalla libreria.Perché ButterKnife utilizza un metodo DebouncingOnClickListener per i metodi @OnClick?
Che DebouncingOnClickListener
fa per evitare che più clicca sulla qualsiasi elemento utilizzando tale ascoltatore sullo stesso telaio (per raggiungere questo obiettivo usano un flag statico). È possibile vedere l'implementazione here.
Ho cercato di trovare una spiegazione sul motivo per cui hanno deciso di utilizzarlo per ogni evento su clic gestito dalla libreria, ma non sono riuscito a trovarne.
Quindi, perché lo usano? Perché hanno deciso che ogni utente di ButterKnife ha bisogno di questo? Non dovrebbe essere l'utente che decide di usarlo o no? Perché accoppiare il binding della vista aiuta a fornire questa "caratteristica"? Cosa succede se voglio ricevere più di un clic sullo stesso frame? Non potrei usare ButterKnife per gli eventi click.
Non pretendo di essere offensivo, voglio solo una spiegazione, forse mi manca qualcosa.
È una libreria open source. Se ti infastidisce così tanto, sono sicuro che le richieste di pull sarebbero benvenute. In caso contrario, puoi sempre forchettarlo. – GreyBeardedGeek