ここで少し手足を出します。この概念やコードを微調整する必要があることは間違いありません。
上記のコメントで行ったことをお勧めします。そのパブリックコンストラクターを拡張ViewPagerおよびオーバーライドし、initViewPager()(提供したソースに表示されている) のクローンであるカスタムメソッドを呼び出します。ただし、お気づきのとおり、mFlingDistance、mMinimumVelocity、およびmMaximumVelocityはprivateフィールドであるため、サブクラスからアクセスすることはできません。
(注:必要に応じて、コンストラクターが呼び出された後にこれらのメソッドを変更することもできます。)
ここが少し難しいところです。Android では、Java Reflection APIを使用して、これらのフィールドにアクセスできるようにすることができます。
次のように動作するはずです。
Class clss = getClass.getSuperClass();
Field flingField = clss.getDeclaredField("mFlingDistance"); // Of course create other variables for the other two fields
flingField.setAccessible(true);
flingField.setInt(this, <whatever int value you want>); // "this" must be the reference to the subclass object
次に、他の 2 つの変数について、必要な値を指定してこれを繰り返します。これらがソースでどのように計算されているかを確認することをお勧めします。
残念ながら、リフレクションを使用してprivatemethodをオーバーライドすることをお勧めしたいdetermineTargetPage()のですが、拡張的なリフレクション API を使用しても、これが可能だとは思えません。