2012-04-12 3 views
3

Я реализую горизонтально библиотеку ViewPager ViewPagerExtensions (com.astuetz.viewpager.extensions) от SwipeyTabsAdapter. Нужно ли перехватывать при смене зрения? таким же образом, я мог бы знать, в какой точке зрения пользователь всегда?Обнаруживать изменение вида на ViewPager

Код ViewPager

public class DiccionariuPagerAdapter extends PagerAdapter { 

    protected transient Activity mContext; 

    private int mLength = 0; 

    public DiccionariuPagerAdapter(Activity context, int length) { 
     mContext = context; 
     mLength = length; 
    } 

    @Override 
    public int getCount() { 
     return mLength; 
    } 

    @Override 
    public Object instantiateItem(View container, int position) { 

     RelativeLayout v = new RelativeLayout(mContext); 

     View vi; // Creating an instance for View Object 
     LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     if (position == 0) {    
      vi = inflater.inflate(R.layout.diccionariu, null); 
     } 
     else if (position == 1) { 
      vi = inflater.inflate(R.layout.conxugar, null); 
     } 
     else { 
      vi = inflater.inflate(R.layout.traducir, null); 
     } 

     v.addView(vi); 

     //v.addView(t); 

     ((ViewPager) container).addView(v, 0); 

     startUpdate(container); 

     return v; 
    } 

    @Override 
    public void destroyItem(View container, int position, Object view) { 
     ((ViewPager) container).removeView((View) view); 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return view == ((View) object); 
    } 

    @Override 
    public void finishUpdate(View container) {} 

    @Override 
    public void restoreState(Parcelable state, ClassLoader loader) {} 

    @Override 
    public Parcelable saveState() { 
     return null; 
    } 

    @Override 
    public void startUpdate(View container) {} 

} 

спасибо

ответ

7

Чтобы получить текущее использование пункта:

int itemId = ViewPager.getCurrentItem() 

С, что вы можете извлечь фактический вид из адаптера с

Adapter.getItem(itemId) 

Вы также можете использовать слушатель OnPageChangeListener

viewPager.setOnPageChangeListener(new OnPageChangeListener... 
4

компилирует & работы:

~~~

mPager.setOnPageChangeListener(new OnPageChangeListener() 
    { 
     @Override 
     public void onPageSelected(int position) 
     { 
       // if listener is set - when using an indicator, must update that here 
       mIndicator.setCurrentItem(position); 

       String msg = "onPageSelected - position: " + position; 
       Log.d("debug1", msg); 
     } 

     @Override 
     public void onPageScrollStateChanged(int state) {} 

     @Override 
     public void onPageScrolled(int position, float arg1, int arg2) {} 
    }); 
+1

'setOnPageChangeListener' является устаревшим, но мы можем использовать' 'addOnPageChangeListener'/removeOnPageChangeListener вместо этого. – k2col

Смежные вопросы