android - onPageScrolled() 没有被调用

标签 android android-viewpager

我正在尝试熟悉 ViewPager。我的代码如下。问题是没有调用 onPageChangeListener 方法。可能是什么问题?

public class TabsViewPagerFragmentActivity extends SherlockFragmentActivity implements ViewPager.OnPageChangeListener {


private ViewPager mViewPager;
private PagerAdapter mPagerAdapter;
private PageIndicator mIndicator;

private static final String[] CONTENT = new String[] { "Home", "Popular", "Chat", "Profile"};

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ActionBar bar = getSupportActionBar();

    View customview = LayoutInflater.from(this).inflate(R.layout.actionbar_custom_layout, null);

    ImageView im = (ImageView)customview.findViewById(R.id.add);

    /*im.getLayoutParams().height = h;
    im.getLayoutParams().width = h;*/

    bar.setCustomView(customview);
    bar.setDisplayShowCustomEnabled(true);
    bar.setDisplayShowTitleEnabled(false);
    bar.setDisplayShowHomeEnabled(false);
    // Inflate the layout
    setContentView(R.layout.tabs_viewpager_layout);


    // Intialise ViewPager
    this.intialiseViewPager();

    mIndicator = (TitlePageIndicator)findViewById(R.id.titles);
    mIndicator.setViewPager(mViewPager);

    TitlePageIndicator indicator = (TitlePageIndicator)findViewById(R.id.titles);

    indicator.setTextColor(0xAAfb891e);
    indicator.setSelectedColor(0xFFfb891e);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {


    menu.add("Search")
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);


    return true;
}



public int getCount() {
    return CONTENT.length;
}


protected void onSaveInstanceState(Bundle outState) {

    super.onSaveInstanceState(outState);
}
private void intialiseViewPager() {


    this.mPagerAdapter  = new PagerAdapter(super.getSupportFragmentManager(),
                                            fragments);

    this.mViewPager = (ViewPager)super.findViewById(R.id.viewpager);
    this.mViewPager.setAdapter(this.mPagerAdapter);
    this.mViewPager.setOnPageChangeListener(this);



}

public void onPageScrolled(int position, float positionOffset,
        int positionOffsetPixels) {
    // TODO Auto-generated method stub

    System.out.println(positionOffsetPixels);

}

public void onPageSelected(int position) {
    // TODO Auto-generated method stub

    System.out.println(position);
}


public void onPageScrollStateChanged(int state) {
    // TODO Auto-generated method stub

    System.out.println(state);

}
}

我的意思是我在滚动页面时没有在 Logcat 中打印任何内容。

最佳答案

好吧,经过一些试验错误,我自己解决了这个问题。

由于我引入了 TitlePagerIndicator 'mIndicator',我不得不调用 mIndicator.setOnPageChangeListener(this); 而不是 mViewPager.setOnPageChangeListener(this);

关于android - onPageScrolled() 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11064831/

相关文章:

java - 缩放后寻找新的点位置

java - 即使在给出正确的引用后也会出现 nullpointerexception。请查看详情

android - 如何将嵌套 fragment 添加到选项卡式 View 寻呼机内的 backstack?

android - 从 viewpager 中的 fragment 获取数据

java - NestedScrollView 内的 Viewpager 不滚动

Android Viewpager.setCurrentitem() 和 FragmentPagerAdapter instantiateItem() fragment 初始化不匹配

java - 如何在 SPRING REST API 中使用 SQL 查询处理 "ALL"?

Android, Intent 不起作用?

android - Firebase 消息处理 - kotlin 中的后台消息

android - 从 XML 布局扩展 ViewPager