Ho una vista a scorrimento con più viste relativelayout orizzontali ... una per ogni record in un database ... che sono create a livello di programmazione.Determina quale VISTA in più viste ha un gesto (doppio clic, scorri a sinistra, scorri verso destra, ecc.)?
Ho bisogno di determinare quale vista è influenzata da alcuni gesti ... fare clic, doppio clic e scorrimento sinistro/destro.
Naturalmente il CLICCA sono stato in grado di ottenere con:
RelativeLayout rlView = new RelativeLayout(this);
rlView.setId(10000+myrecordid);
rlView.setOnClickListener(myviewclick);
e la myviewclick:
private View.OnClickListener myviewclick = new View.OnClickListener() {
public void onClick(View v) {
Integer i=v.getId()-10000;
// Do some processing on this view
}
};
Da quello che ho trovato in rete, ho cercato di ottenere il gesto in questo modo:
rlView.setOnTouchListener(myviewtouch);
con questo codice:
private View.OnTouchListener myviewtouch = new View.OnTouchListener(){
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
GestureDetector gestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDoubleTap(MotionEvent e) {
Log.i("MYLOG","double tap");
return true;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
Log.i("MYLOG","SingleTapConfirmed");
return true;
}
@Override
public void onLongPress(MotionEvent e) {
Log.i("MYLOG","LongPress");
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (e1.getX()<e2.getX())
Log.i("MYLOG","Fling Right");
else
Log.i("MYLOG","Fling Left");
return true;
}
});
};
Secondo MYLOG, sto ricevendo i gesti appropriati secondo le necessità. Il problema è che non so come ottenere l'ID della vista in cui si trovava il gesto. So che è nello onTouch
ma che ha chiamato lo gestureDetector.OnTouchEvent
per determinare il movimento ... e sono perso a questo punto.
Ho cercato dappertutto StackOverflow e altri siti per diverse ore ... mostrano tutti le differenze su come determinare il gesto ... ma non riesco a trovare nulla sull'utilizzo con più viste che posso usare.
Qualsiasi aiuto sarebbe apprezzato.
Spiego il contesto per il motivo per cui aggiungo la taglia in [questa domanda] (https://stackoverflow.com/questions/45070129/detecting-common-gestures-on-multiple-views-in-android). – Suragch