2012-02-10 7 views
4

私は現在、水平ビューページングチュートリアルをつもりです:テスト目的のためにhttp://mobile.tutsplus.com/tutorials/android/android-user-interface-design-horizontal-view-paging/混乱(アンドロイド)

、私はinstantiateItemの最初の行として次の行を追加しました この例では:(...)機能:

Log.d("SimpleViewPagerActivity", "Position " + position); 

(あなたは私が次の段落で、それについて話しているかを確認する例を自分で試してみるならば、それは良いだろうので、次は混乱しています) (0ベースの)5つのViewPagerポジションがあり、アクティビティはポジション2で開始するように設定されています。W私がアクティビティを開始すると、最初のポジションは1から2、次に3になります。左にスワイプすると、ログには位置が0と表示されます。もう一度左にスワイプすると、ログメッセージは表示されません。ここから、私は右にスワイプし、ポジションは2です。私は再び右にスワイプし、ポジションは3です。私は右の他のポジションにスワイプし、私は説明できない結果を得ます。

誰かがinstatiateItem()内の 'position'変数を説明することができますか、どこに説明されていますか?私は現在、Android Compatibilityパッケージv6にあります。

答えて

9

instantiateItemの内部で、位置パラメータはレンダリングが必要な位置です。これは、ユーザが見ると現在フォーカスされているアイテムの位置ではありません。現在表示されているビューの左右にあるページは、あらかじめメモリにレンダリングしておく必要があります。そのため、それらの画面のアニメーションは滑らかになります。

+0

これは意味があります。だから、どのように現在の焦点を絞ったアイテムの位置を得るだろうか?私はAndroid Developers-> ReferenceのPagerAdapter javadocsを使っていますが、それを得る方法はありません。 – tehawtness

+0

nvm、以下が見つかりました:[ViewPagerオブジェクト] .getCurrentItem() – tehawtness