Android déplacer la vue sur la touche de l'événement
Je voudrais déplacer les deux points de vue différents dans ma mise en page, de sorte qu'un utilisateur peut voir ça comme il le souhaite.
Jusqu'à présent, j'ai fait le code suivant pour gérer l'événement tactile:
this.viewEvent.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event)
{
final int y = (int) event.getRawY();
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) view.getLayoutParams();
switch (event.getAction() & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:
element.setEventY(y - params.topMargin);
break;
case MotionEvent.ACTION_UP:
viewGroup.invalidate();
break;
case MotionEvent.ACTION_POINTER_DOWN:
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
params.topMargin = y - element.getEventY();
params.bottomMargin = screenHeight - view.getHeight() - params.topMargin;
//Avoid out of screen
if (params.topMargin < 0) return true;
//Apply changes
view.setLayoutParams(params);
break;
}
return true;
}
});
element
est une instance d'un objet personnalisé pour gérer la position.
screenHeight
est la hauteur de l'écran donnée par le Display
classe.
Je suis en mesure de déplacer l'élément, mais c'est à clignoter quand je le touche et une fois j'ai mis mon doigt vers le haut, la vue juste de disparaître. Je ne peux même pas à le récupérer, il est juste hors de l'écran.
Ai-je fais quelque chose de mal ?
Merci pour votre aide
Voici la réponse de android: déplacer une vue sur la touche move (ACTION_MOVE)
Voici un exemple thegeekyland.blogspot.com/2015/12/...
Android Déplaçable Vue
Voici un exemple thegeekyland.blogspot.com/2015/12/...
Android Déplaçable Vue
OriginalL'auteur Manitoba | 2014-04-16
Vous devez vous connecter pour publier un commentaire.
Utiliser le code suivant pour effectuer une simple
Touch to move
:Où
layout_counter
est la vue que vous souhaitez déplacer.N'oubliez pas de mettre vos éléments mobiles dans un
FrameLayout
Il montre essayez d'appeler une méthode virtuelle en raison de pointeur null même si je l'ai déclaré à la framelayout
Quel est l'État.EDIT_MOVE et currentState dans la réponse. Pouvez-vous expliquer?
C'est un État d'une
enum
j'ai utilisé dans mon code pour utiliser un bouton pour activer/désactiver le glisser.OriginalL'auteur Manitoba
J'ai créé la bibliothèque, ce qui déplace la vue:
Il suffit d'ajouter la dépendance:
Plus d'info vous pouvez trouver sur GitHub
OriginalL'auteur Vladyslav Baidak
Je vais vous donner une solution alternative pour ceux qui utilisent Relative de la mise en page par exemple.
OriginalL'auteur Sa Qada