0

I have a ViewPager on which I am trying to apply onLongClickListener to change a Fragment from Activity which does not work.

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

Fragment replacement:

 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);
}
user8601021
  • 219
  • 3
  • 18

1 Answers1

0

ViewPager doesn't consume click events so try to set the listener on your image or container layout instead of viewPager in instantiateItem().

UPDATE

@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;
}
Laura
  • 2,653
  • 7
  • 37
  • 59
  • i tried it on the container as it is within a elative layout but it doesnt work either – user8601021 Oct 17 '17 at 11:01
  • If you tried `container` variable from the `instantiateItem` method that variable is the viewPager. In my suggestion I meant the container layout in which is your imageView. I updated the answer with an example. It should work this way :) – Laura Oct 17 '17 at 12:06
  • I want to replace a fragment but when I am using getFragmentManager() method within view pager adapter android studio doesnt recognize that method – user8601021 Oct 17 '17 at 12:30