J'ai un ViewPager qui fait défiler les emails, il demande un email quand l'utilisateur arrête de défiler pendant un court laps de temps, avec un planificateur.Désactiver juste en tapant sur ViewPager
Pendant cette pause, je ne souhaite pas que les boutons d'espace réservé figurant sur la page en cours de chargement soient cliqués. Au cours de cet événement de pagination, je voudrais autoriser le balayage, car l'utilisateur peut continuer à glisser vers un autre e-mail mais désactiver l'envoi sur l'expéditeur/destinataire ou les éléments interactifs dans l'e-mail qui sont toujours réservés et ne mèneront nulle part.
J'ai essayé de faire quelque chose comme cela jusqu'à présent sur le téléavertisseur de vue:
// Set a simple gesture to handle our click request, allowing everything else
final GestureDetector.SimpleOnGestureListener dsl_simpleDetector = new GestureDetector.SimpleOnGestureListener() {
public boolean onSingleTapUp (MotionEvent motionEvent) {
// Don't want to do anything with this if timer is running
final ExchangeEmailActivity ds_act = (ExchangeEmailActivity) getActivity();
if (ds_act.dsc_timer != null) { // We're waiting for the page to load still
return false; // Handle it by doing nothing
} else {
return true; // Let it be handled as necessary
}
}
};
// The listener will call the simple gesture above to handle it
vp_pager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return (dsl_simpleDetector.onSingleTapUp(motionEvent));
}
});
Il n'est pas viable d'interagir avec les boutons eux-mêmes, ils font partie d'un système plus large, le piratage serait bien pire conception. Le ViewPager est le système le moins profond de tous, et la fonctionnalité ne doit concerner que ce ViewPager particulier, aucun autre. – Ben
Il se peut que ViewPager soit le système le moins profond. MAIS vous devez le voir de l'utilisateur. S'il y a des boutons activés (que vous empêchez de cliquer) dans votre application, un utilisateur essaiera de les cliquer tôt ou tard et rien ne se passera. Et cela ne devrait jamais arriver. – IIIIIIIIIIIIIIIIIIIIII
Dans ce cas, il semble acceptable de le faire puisque cette fonctionnalité de désactivation ne devrait durer qu'environ 200 millisecondes, un message toast pourrait être fourni lors de l'interception de cette fonctionnalité ayant ViewPager informer l'utilisateur d'attendre la fin du chargement. – Ben