Ehi ciao dema, sei anche qui a farci compagnia
benvenuto nel team 
Purtroppo anche qui non c'è la soluzione al problema iniziale
l'evento onTouchEvent non viene richiamato nonostante venga premuto il touch!!. Per quanto riguarda quello che hai detto trovo che sia un ottima cosa
cosi anche nei terminali più lenti non si evita di uscire dall'intervallo.
Per quanto riguarda la domanda "Che eventi ci sono che possiamo usare?" è semplice :
La stessa onTouchEvent!:
codice:
if (event.getAction() == MotionEvent.ACTION_UP) {
do something
}
Dove chiaramente event è il parametro della funzione onTouch motion event e ACTION_UP significa rilascio del dito.
L'include 3 incluederà delle icone.
Lavorando per mettere l'animazione che fa salire o scendere la barra (ho usato i TraslateAnimation) ho trovato il problema che la barra si muove ma il drawer agganciato ad essa con il below (relative layout) non la segue e inoltre dopo l'animazione la barra non si muove correttamente, quindi ho risolto mettendo alla fine dell'animazione un setTop che risistema il drawer ma durante l'animazione il drawer non si muove e si aggancia solo alla fine. Creare due animazioni contemporanee potrebbe essere la soluzione ma viene una cosa sporchissima e inaccettabile. Comunque ecco cosa ho fatto:
codice:
if (event.getAction() == MotionEvent.ACTION_UP) {
int originalPos[] = new int[2];
dropdownbar2.getLocationOnScreen( originalPos );
Animation animation = new TranslateAnimation(0, 0, 0, 0 - originalPos[1] + statusBarOffset);
// il costruttore prevede 4 int, x iniziale, x finale, y iniziale e y finale. Tutte le coordinate sono relative al punto in cui si trova la view prima dell'animazione (es. 0,0,0,10 sposterà la view di 10dp in alto)
// A better form is:
// TraslateAnimation animation = new TranslateAnimation(0, 0, 0, -originalPos[1]);
// or
// TraslateAnimation animation = new TranslateAnimation(0, 0, 0, -(dropdownbar2.geTop()));
animation.setDuration(1000);
animation.setFillAfter(false); // <-- fa in modo che a fine animazione la view rimanga nel posto e non ritorni al posto iniziale
dropdownbar2.startAnimation(animation);
animation.setInterpolator(new AccelerateInterpolator(ACCELERATION_VALUE));
animation.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation anim) {
}
@Override
public void onAnimationRepeat(Animation anim) {
}
@Override
public void onAnimationEnd(Animation anim) {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.topMargin = 0; <-- in questo caso la barra viene piazzata alla massima altezza
dropdownbar2.setLayoutParams(params);
}
});
}