2012-02-03 16 views
10

Tengo un fragmento que contiene un ViewPager. Cuando inflar el diseño, asigno un oyente OnLongClick a ella de la siguiente manera:ViewPager OnLongClick oyente que no se activa

mPager.setOnLongClickListener(mOnPagerLongClickListener); 

Sin embargo, cuando realizo un clic largo en el ViewPager, no pasa nada. ¿Qué puedo hacer para que esto funcione? ¿O necesito asignar el oyente a cada vista en ViewPager en su lugar? Tampoco parece que funcione asignar al oyente a las GridViews que contiene ViewPager.

Respuesta

3

Disculpe por hacer una consulta, pero soy capaz de resolver el problema. No será útil para ti, pero puede ser útil para cualquier otro espectador.

La solución simple es asignar el oyente directamente al objeto de ImageView en lugar de asignarlo al objeto de ViewPager, es decir, la asignación de viewPager.setOnLongClickListener no activará nada.

Por lo tanto, tenemos que inicializar ImageView con onLongClickListeners en la clase que se extiende en PageAdapter instantiateItem() por:

imageView.setOnLongClickListener(new OnLongClickListener()){ 

    @Override 
    public boolean onLongClick(View v) { 
     // Do your stuff 
     return false; 
    } 
}); 
Cuestiones relacionadas