表示されたときにHorizontalScrollViewがすでに値によってスクロールされる値を指定するにはどうすればよいですか?
すでにscrollToメソッドを試しましたが、これはポストレイアウトコンテキストでのみ機能し、特定の位置でHorizontalScrollViewを開始できません。
どうやってやるの?
表示されたときにHorizontalScrollViewがすでに値によってスクロールされる値を指定するにはどうすればよいですか?
すでにscrollToメソッドを試しましたが、これはポストレイアウトコンテキストでのみ機能し、特定の位置でHorizontalScrollViewを開始できません。
どうやってやるの?
私はこの方法で解決しました。より良い解決策も大歓迎です:
public void scrollWhenAvailable(final int x) {
if (x == getScrollX())
return;
scrollTo(x, 0);
postDelayed(new Runnable() {
@Override
public void run() {
scrollWhenAvailable(x);
}
}, 10);
}
postDelayedには不要だと思います。すべてのビューのディメンションが計算された後に実行されるため、単純な投稿で十分です。これをonCreate(..)に追加することもできます。
scrollView.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
scrollView.setScrollX(x);
}
});
また、SDKレベルが十分に高い場合は、setScrollXがおそらく使用したいものであることに注意してください。
適切なタイミングで呼び出す必要があるかもしれませんが、それはまさにあなたが望むことをするので、とにかく scrollTo を使用する必要があります。(いくつかの onPostSomething では、私は推測します)