不要在 ViewPager 中使用 PageListener

Don't work PageListener in ViewPager

我想为 ViewPager 设置 PageListener,但我的代码不起作用。

这是我的代码

Class 收听:

private class PageListener extends ViewPager.SimpleOnPageChangeListener {
    public void onPageSelected(int position) {
        currentPage = position;
        if (currentPage == 0) {
            ((DashboardActivity) getActivity()).hideArcMenu();
        } else if (currentPage == 1) {
            ((DashboardActivity) getActivity()).hideArcMenu();
        } else if (currentPage == 2) {
            if (DatabaseManager.getInstance(getActivity()).getAllHistoryCardsCountById(((DashboardActivity) getActivity()).getCarId()) <= 0) {
                ((DashboardActivity) getActivity()).showArcMenu();
            }
        }
    }
}

并设置为 ViewPager:

vpPager.setOnPageChangeListener(new PageListener());

试试这个代码:

vpPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
     @Override
     public void onPageSelected(int position) 
     {
        currentPage = position;
        if (currentPage == 0) {
            ((DashboardActivity) getActivity()).hideArcMenu();
        } else if (currentPage == 1) {
            ((DashboardActivity) getActivity()).hideArcMenu();
        } else if (currentPage == 2) {
            if (DatabaseManager.getInstance(getActivity()).getAllHistoryCardsCountById(((DashboardActivity) getActivity()).getCarId()) <= 0) {
                ((DashboardActivity) getActivity()).showArcMenu();
            }
        }     
     }
     @Override
     public void onPageScrollStateChanged(int state)
     {
     }
     @Override
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
     {
     }
});