2012-08-27 27 views
6

ViewPagerの感度を変更する方法を知っている人はいますか?ビューポートの感度を変更する方法は?

現在、私は自分の写真ビューアを実装するためにアンドロイド版v4サポートライブラリのViewPagerを使用しています。

しかし、私の指が画面に触れて、非常に短い(おそらくわずか0.5cm)移動すると、デフォルトのViewPagerは非常に敏感です。その後、ViewPagerは次/前の写真ビューにスクロールするためにトグルされます。

感度を下げるためにViewPagerのデフォルトの動作を上書きする方法はありますか?

回答ありがとうございます。

答えて

4

私は互換性ライブラリのsrcからViewPager.javaをチェックアウトしました。これはxmlやいくつかのセッターではできないようです。 ViewPagerは、次のようなコードがあります。

final float density = context.getResources().getDisplayMetrics().density; 
mFlingDistance = (int) (MIN_DISTANCE_FOR_FLING * density); 
mCloseEnough = (int) (CLOSE_ENOUGH * density); 
mDefaultGutterSize = (int) (DEFAULT_GUTTER_SIZE * density); 

あなたが見ることができるように、それはそれは情事の距離の決意のための内部定数の用途となど

グッドニュースは以下のとおりです。あなたはViewPagerをコピーすることができます(ここでのライセンスなければなりません考えてください)をあなたのコードに追加して拡張しますxml属性から飛行距離を取得します。

+0

。 – Raymond

+0

ハッキーですが、反射を使って設定することもできます。 – Ljdawson

+0

@Raymondこれを解決しましたか? ViewPagerのデフォルトのScrollVIewのようなスクロールが必要です。 – Noundla

2

あなたはこのようmFlingDistanceフィールドを反映することができますだけでなく、私は、お返事のおかげでそれをやろうよ

Field mFlingDistance; 
mFlingDistance = ViewPager.class.getDeclaredField("mFlingDistance"); 
mFlingDistance.setAccessible(true); 

// Set custom value: 
mFlingDistance.set(mPager, 30); 
関連する問題