如何在xamarin中为多个ViewPagers设置OnPageChangeListener

时间:2015-07-31 09:57:17

标签: c# android xamarin android-viewpager

您好我被困在我在相同活动中使用两个视图寻呼机的位置, 当我是Onigchangeing OnpagechangeListener时,第一个工作正常。 对于第二个我正在创建一个不同的类来区分两个viewPagers但它不起作用。这个问题与How to set OnPageChangeListener for Multiple ViewPagers非常相似 下面是我实现第二个视图分页器的类的代码

using System;
using Android.Support.V4.View;
using Android.App;

namespace Running2Win.Droid
{
    public class MyPagerIndicator : Android.Support.V4.View.ViewPager.IOnPageChangeListener{
        #region IOnPageChangeListener implementation

        public MyPagerIndicator(ViewPager vp){
            vp.AddOnPageChangeListener (this);
        }

        public void OnPageScrollStateChanged (int state){   
            Console.WriteLine("OnPageScrollStateChanged"+ state);
        }

        public void OnPageScrolled (int position, float positionOffset, int positionOffsetPixels){Console.WriteLine("OnPageScrolled");}

        public void OnPageSelected (int position)
        {
            switch (position) {
            case 0:
                Console.WriteLine("Case 0"+position);
                HomePageActivity.dot_down_one.SetImageResource (Resource.Drawable.dot_arrow_active);
                HomePageActivity.dot_down_two.SetImageResource (Resource.Drawable.dot_arrow);
                HomePageActivity.dot_down_three.SetImageResource (Resource.Drawable.dot_arrow);
                break;
            case 1:
                Console.WriteLine("case1"+ position);
                HomePageActivity.dot_down_two.SetImageResource (Resource.Drawable.dot_arrow_active);
                HomePageActivity.dot_down_three.SetImageResource (Resource.Drawable.dot_arrow);
                HomePageActivity.dot_down_one.SetImageResource (Resource.Drawable.dot_arrow);
                break;
            case 2:
                Console.WriteLine("case2"+ position);
                HomePageActivity.dot_down_three.SetImageResource (Resource.Drawable.dot_arrow_active);
                HomePageActivity.dot_down_two.SetImageResource (Resource.Drawable.dot_arrow);
                HomePageActivity.dot_down_one.SetImageResource (Resource.Drawable.dot_arrow);
                break;

            default:
                //                  Console.WriteLine("Default case"+position);
                //                  HomePageActivity.dot_one.SetImageResource (Resource.Drawable.dot_arrow_active);
                //                  HomePageActivity.dot_two.SetImageResource (Resource.Drawable.dot_arrow);
                //                  HomePageActivity.dot_three.SetImageResource (Resource.Drawable.dot_arrow);
                break;
            }
        }

        #endregion

        #region IDisposable implementation

        public void Dispose ()
        {}

        #endregion

        #region IJavaObject implementation

        public IntPtr Handle {
            get {
                return (System.IntPtr)0;
            }
        }

        #endregion





    }

}

来自我的主要活动我正在构造函数

中传递视图分页器的实例

0 个答案:

没有答案