Просмотр пейджера с OnLongClickListener не работает

У меня есть ViewPager, к которому я пытаюсь применить onLongClickListener для изменения фрагмента из действия, которое не работает.

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

Замена фрагмента:

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

person user8601021    schedule 17.10.2017    source источник
comment
пожалуйста, вы можете написать больше кода   -  person Matteo    schedule 17.10.2017
comment
Я поместил код в свой класс Activity в onCreate   -  person user8601021    schedule 17.10.2017
comment
Вы пробовали такие ответы?   -  person Lalit Fauzdar    schedule 17.10.2017
comment
прокрутка уже показывает следующие изображения с помощью ArrayAdapter. Я хочу применить onLongClick, который открывает другой фрагмент для отображения деталей изображения   -  person user8601021    schedule 17.10.2017


Ответы (1)


ViewPager не использует события щелчка, поэтому попробуйте установить прослушиватель на вашем изображении или макете контейнера вместо viewPager в instantiateItem().

ОБНОВЛЕНИЕ

@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;
}
person Laura    schedule 17.10.2017
comment
я попробовал это на контейнере, так как он находится в относительном макете, но он тоже не работает - person user8601021; 17.10.2017
comment
Если вы попробовали переменную container из метода instantiateItem, эта переменная является viewPager. В своем предложении я имел в виду макет контейнера, в котором находится ваш imageView. Я обновил ответ примером. Так должно работать :) - person Laura; 17.10.2017
comment
Я хочу заменить фрагмент, но когда я использую метод getFragmentManager() в адаптере просмотра пейджера, Android Studio не распознает этот метод - person user8601021; 17.10.2017