0

J'ai un ViewPager sur lequel j'essaye d'appliquer onLongClickListener pour changer un fragment d'activité qui ne fonctionne pas.Voir Pager avec OnLongClickListener ne fonctionne pas

mPager1.setOnLongClickListener(new View.OnLongClickListener() { 
    @Override 
    public boolean onLongClick(View v) { 
    onViewPagerClick(); 
     return false; 
    } 
}); 

remplacement Fragment:

public void onViewPagerClick() { 
    FragmentTransaction ft5 = getSupportFragmentManager().beginTransaction(); 
    fragment = new SingleProductFragment(); 
    container.setVisibility(View.VISIBLE); 
    ft5.add(R.id.container, fragment); 
    // ft.addToBackStack(null); 
    ft5.commit(); 
    sv.setVisibility(View.INVISIBLE); 
    addButton.setVisibility(View.INVISIBLE); 
} 
+0

s'il vous plaît, vous pouvez écrire un code plus – Matteo

+0

j'ai placé le code dans ma classe d'activité au sein onCreate – user8601021

+0

Avez-vous essayé (https://stackoverflow.com/a [tel]/46707510/8244632) réponses? –

Répondre

0

ViewPager ne consomme pas cliquer sur les événements, alors essayez de mettre l'auditeur sur l'image ou la mise en page contenant au lieu de viewPager dans instantiateItem().

MISE À JOUR

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
LayoutInflater inflater = LayoutInflater.from(MainActivity.this); 
ViewGroup viewPagerItem = (ViewGroup)inflater.inflate(R.layout.viewPager_item, container, false); 
ImageView imageView = (ImageView)viewPagerItem.findViewById(R.id.imageView); 
viewPagerItem.setOnLongClickListener(new View.OnLongClickListener() { 
    @Override 
    public boolean onLongClick(View view) { 
     Toast.makeText(MainActivity.this, "TEST", Toast.LENGTH_LONG).show(); 

     return false; 
    } 
    }); 

    container.addView(viewPagerItem); 

    return viewPagerItem; 
} 
+0

je l'ai essayé sur le conteneur car il est dans une disposition élative mais il ne fonctionne pas non plus – user8601021

+0

Si vous avez essayé Variable 'container' de la méthode' instantiateItem' cette variable est le viewPager. Dans ma suggestion je voulais dire la disposition du conteneur dans lequel est votre imageView. J'ai mis à jour la réponse avec un exemple. Il devrait fonctionner de cette façon :) – Laura

+0

Je veux remplacer un fragment mais quand j'utilise la méthode getFragmentManager() dans l'adaptateur view pager studio android ne reconnaît pas cette méthode – user8601021