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);
}
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;
}