Effet du bouton sur l'effet de bouton de l'élément List View pour Android

Je porte une application iPhone dans l'application Android et l'une des difficultés est de recréer des fonctionnalités qui sont originaires de l'iPhone.

J'ai trouvé une fonctionnalité native de l'iPhone: lorsque l'utilisateur exécute une touche de diapositive sur un élément indiqué dans la liste, un bouton de suppression apparaît.

  • Comment détecter la présence des utilisateurs dans Android?
  • Android - Enregistrement / extraction de chaînes avec des préférences partagées
  • Comment obtenir la largeur de textView dans Android
  • Le gestionnaire est abstrait, ne peut pas être instancié
  • Comment faire mon propre numéroteur personnalisé dans un téléphone Android
  • Possibilité de remplacer / appliquer le style dans la mise en page inclus avec <include> tag?
  • Existe-t-il une version pour Android? Peut-il être utilisé et réutilisé / personnalisé?

  • Android Création d'un fichier de saisie résident de mémoire qui peut être joint à un courriel
  • Comment servir un fichier sur sdcard à l'aide de NanoHTTPD (à l'intérieur d'Android)
  • Comment réparer la taille du texte d'édition multiligne
  • Comment trouver la vue depuis la chaîne au lieu de R.id
  • Faire des fragments en plein écran par programme
  • Comment configurer le diviseur entre les colonnes dans tablelayout?
  • 4 Solutions collect form web for “Effet du bouton sur l'effet de bouton de l'élément List View pour Android”

    C'est un peu plus compliqué à réaliser. C'est ce que je ferais parler d'un niveau supérieur.

    1. Créez un ViewGroup / Layout personnalisé pour contenir un élément de liste. À l'intérieur de cette disposition, vous avez vos images de lignes de texte ou ce que vous avez déjà et aussi le bouton de suppression. Vous écoutez également ici des gestes pour cacher ou décocher le bouton de suppression.

    2. Dans votre carte, vous devrez suivre l'élément affichant le bouton de suppression et ce qui ne l'est pas. En outre, vous devrez appliquer un écouteur de clic à chacun des boutons de suppression de l'élément de liste. Chaque fois que vous affectez ces états sur l'élément de liste, vous devez configurer (…) et stocker la position de l'élément de liste afin que, lorsque vous cliquez dessus, vous pouvez indiquer le numéro d'élément à supprimer.

    3. Après la suppression, vous devez actualiser la liste pour qu'elle prenne effet. Selon le type d'adaptateur que vous utilisez, cela déterminera la façon dont vous rafraîchissez l'adaptateur.

    Espérons que cela a du sens. Mais je pense vraiment que c'est le moyen le plus simple depuis que je l'ai fait quelques fois avec des fonctionnalités similaires.

    Je suppose que vous pouvez essayer d'implémenter l'auditeur de gestes sur la liste, mais il pourrait être difficile d'obtenir l'identifiant correct. Comme je ne l'ai pas fait moi-même, je ne peux pas répondre exactement.

    Sinon, vous pourriez avoir votre propre point de vue comme élément dans la liste et avoir un auditeur de gestes sur tous les enfants.

    Fling gesture detection on grid layout Pour quelques exemples de lecture et de code de base

    Je ne pense pas qu'il existe une fonction API intégrée pour ce faire.

    Cependant, une solution de contournement serait d'utiliser la fonction onFling sur la vue dans listitem. Vous pourriez pouvoir utiliser ceci pour accomplir ce que vous voulez.

    C'est ainsi que je réalise cet effet. Nous avons un ListView lvSimple et nous ajoutons onTouchListener à notre lvSimple. C'est mon code de travail.

    float historicX = Float.NaN, historicY = Float.NaN; static final int DELTA = 50; enum Direction {LEFT, RIGHT;} ... ListView lvSimple = (ListView) findViewById(R.id.linLayout); ... lvSimple.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub switch (event.getAction()) { case MotionEvent.ACTION_DOWN: historicX = event.getX(); historicY = event.getY(); break; case MotionEvent.ACTION_UP: if (event.getX() - historicX < -DELTA) { FunctionDeleteRowWhenSlidingLeft(); return true; } else if (event.getX() - historicX > DELTA) { FunctionDeleteRowWhenSlidingRight(); return true; } break; default: return false; } return false; } }); 

    Où fonction FunctionDeleteRowWhenSlidingLeft () appelle lorsque lorsque nous glissons vers la gauche, FunctionDeleteRowWhenSlidingRight – vers la droite, respectivement. Dans cette fonction, vous devez coller le code pour l'animation.

    Ps. Je suis désolé pour mon mauvais anglais. Toujours heureux d'aider.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.