I moved from ViewPager
to ViewPager2
. Since there's no way to set a clickable callback to ViewPager2
or extend it to be clickable, I did this:
public class ViewPagerFragment extends Fragment {
ViewPager2 viewPagerTop;
ViewPager2Adapter viewPager2TopAdapter;
ClickableListener topClickableListener;
public interface ClickableListener {
public void on(int position);
public boolean onLong(int position);
}
public void setOnClickTop(ClickableListener clickableListener) {
topClickableListener = clickableListener;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_view_pager, container, false);
viewPagerTop = view.findViewById(R.id.viewPagerTop);
viewPagerTop.setOnLongClickListener(v -> {
Log.d("AAA", "long clicked!");
int position = viewPagerTop.getCurrentItem();
return topClickableListener.onLong(position);
});
viewPagerTop.setOnClickListener(v -> {
Log.d("AAA", "clicked!");
int position = viewPagerTop.getCurrentItem();
topClickableListener.on(position);
});
but it won't work. I see nothing on log.