0

私は自分のViewPagerフラグメントにscrollViewを持っています。私は最初のscrollView位置を(0,100)に設定したいと思います。Android ScrollViewの初期位置をオーバーライドする方法は?

私はonCreateView()scrollView.scrollTo(0,100)を設定してみました。それはうまくいかなかった。ユーザーエクスペリエンスのために悪いですscrollViewに少しジャークを引き起こし

は、それから私は、ハンドラで同じことをしようと、それが働いていたが、それは唯一の(0,0)の後(0100)にスクロールします。

代わりに、(0,0)のscrollviewが直接(0100)にスクロールさせるための方法はありますか?または、初期スクロールイベントを検出するためにscrollViewで利用可能なメソッドがありますか?

P.S:私は私が、受け入れ答えとしても同じことが私のために働いていない質問hereを見ました。

ご協力いただければ幸いです。

+0

あなたのスクロールビューはフラグメント内にあるので、これらのメソッドが動作するはずなので間違った場所でメソッドを呼び出す可能性があります。あなたがしていることの本当の例がなければ助けになることはできません。 – Ricardo

+0

あなたは解決策を見つけたことがありますか?私は同じ問題を抱えています –

答えて

0

代わりscrollToの おかげで、あなたは、スクロールビューの内部レイアウトの最初の子でのrequestFocusを使用することができます。

例:あなたは

線の下のビュービュー= findViewByTag( "ScrollTopTag)を追加し、スクロールビューの一番上までスクロールしたいあなたの活動に

<ScrollView> 

    <LinearLayout> 

     <TextView 
      android:focusable="true" 
      android:focusableInTouchMode="true" 
      android:tag="ScrollTopTag" /> 
     //***rest of your layout***// 
    </LinearLayout> 

</ScrollView> 

; view.requestFocusを();

+0

試してみましたが、うまくいきません – vijay

+0

ここにあなたの変更されたレイアウトをコメントしてください。 – WritingForAnroid

+0

こんにちは あなたの答えをありがとう。 'view view1 = scrollView.getChildAt(scrollView.getChildCount() - 1); view1.setFocusable(true); view1.setFocusableInTouchMode(true); view1.requestFocus(); ' 私はそれはあなたがやや言ったものですが、私のために働いていなかったと信じています。 scrollToがハンドラーでうまく動作し、それが望ましい位置にスクロールする前に言ったように。したがって、scrollTo()メソッドに問題はありません。 scrollTo(0,100)を呼び出すと、最初に(0,0)にスクロールされ、次に(0,100)に移動します。 – vijay

0

リサイクルせずにアダプタ内部のビューを膨らませているように感じるのですが、これは不安定なローディング時間を説明していますが、それ以外の例では遅延をさらに試してみてください。それはそれがまだ満たされていないので、どこにもスクロールしないよりも読み込みが完了していません。私は最初から始めるだろうが、それがうまくいくかどうかを見るために、最初に約2000msの時間を伸ばす。それがうまくいくなら、私はあなたのアダプタークラスに戻り、それぞれのビューが再膨張の代わりにリサイクルされていることを確認します。

+0

こんにちはフェデイ、 scrollTo()はうまく動作します – vijay

+0

しかし、問題は、最初の位置(0,0)の後にのみ目的の位置にスクロールします。そして私はその最初の位置を無効にしたい。それは小さなジャークを引き起こす。 私はリサイクル部品を実装していませんでした。私は意見を反映しているだけです – vijay

関連する問題