マークDが正しいかあなたが滑らかにしたい場合は、そのListFragment
にListView
をスクロールする場合は、ListFragment
にgetListView()
と電話し、のsmoothScrollToPosition(int)
を返す必要があります。もちろん、これはAPIレベル8までしか動作しません。smoothScrollToPosition(int)
がAbsListView
に、ListView
のスーパークラスに導入されたからです。
AbsListView.java
のコードを見て、自分のサブクラスであるAbsListView
またはListView
でそれを複製しようとするといいでしょう。 PositionScroller
のインスタンスでsmoothScrollToPosition(pos)
がただstart(pos)
を呼び出していることがすぐわかりますが、がonDetachedFromWindow()
、public void onWindowFocusChanged(boolean hasWindowFocus)
のようないくつかの別の場所から呼び出されているので、自分のサブクラスでその動作を複製するのがやや複雑に見えます。 AbsListView
のAPI 7バージョンに基づいて、あなたのサブスクラスにあなたのPositionScrollerの振る舞いをきれいに統合する方法は私にはっきりと分かりません。
最新のdata setでAPI 7以前のデバイスで8%未満のデバイスを占有していたのが私の決定だった場合は、APIが8よりも低い場合はsetSelectionFromTop
のような簡単な処理をします(Build.VERSION.SDK_INTによって検出されます)。
全面的な答えをありがとう:) – Warpzit
それもここで働いた!ありがとう – Aci89