OnPageScrolled () no se llama

Estoy tratando de familiarizarme con ViewPager. Mi código se da a continuación. El problema es que los métodos onPageChangeListener no se están llamando. ¿Cual puede ser el problema?

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

Lo que quiero decir es que no tengo nada impreso en el Logcat en el desplazamiento de mis páginas.

Bueno, he resuelto el problema yo mismo después de algún error de prueba.

Desde que presentaba un TitlePagerIndicator 'mIndicator', tuve que llamar a mIndicator.setOnPageChangeListener (this); Y no mViewPager.setOnPageChangeListener (este);

La secuencia System.out no se imprime en Logcat. Utilice la clase Log como Log.d("MyApp","message") .

La forma en que ha escrito su código supongo que está implementando ViewPager.OnPageChangeListener

Cambio

this.mViewPager.setOnPageChangeListener(mIndicator);

A

this.mViewPager.setOnPageChangeListener(this);

He seguido los consejos chicos de arriba, pero no funcionó para mí. En mi caso, he utilizado: mIndicator.setCurrentItem(position);

Esto puede ayudar a alguien!

  • PagerTabStrip: cambia el ancho de la pestaña
  • FragmentPagerAdapter - cómo detectar un golpe o un clic de pestaña cuando el usuario va a una nueva pestaña?
  • Multi-Pane fragmentos dentro de viewpager
  • ¿Es posible desactivar el desplazamiento en un ViewPager?
  • ¿Cómo puedo configurar ViewPager layoutParams de forma programática?
  • Llame a actvity después de que el viewpager haya terminado
  • Índice de fragmentos de resultados de actividad Fuera del rango: 0x20001
  • ¿Cómo se crea un Android View Pager con un indicador de puntos?
  • Colocar un anuncio de banner para que se sitúe a continuación y se separe de ViewPager
  • Quitar y agregar la página a FragmentPagerAdapter
  • InfiniteViewPager se congela en el método setCurrentItem ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.