私は自分のコンピュータ上のエミュレータでscrollByメソッドを呼び出すと、自動的にスクロールするScrollViewを持つAndroidプログラムを持っていますが、Android携帯では実行しません。ここでAndroid ScrollViewクラスのsmoothScrollByメソッドの使用
はコードです:
public class RecordGameActivity3 extends Activity {
ScrollView myView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recordgame3);
myView = (ScrollView)findViewById(R.id.scrollView1);
}
public void addPlayer(View v)
{
//Removed non-related code
myView.smoothScrollBy(0, 50);
}
}
また、定期的なscrollByメソッドが動作しないか、scrollTo方法(つまり、いずれかのコンピュータ上では動作しませんので、私は正しくそれを使用していないかもしれないが)。誰が何が間違っているかもしれないという考えを持っていますか?
EDIT:
ダレルの答えとして私の問題は、私は私がすることができるように十分な大きスクロール領域になるだろうなレイアウトに変更を作っていた機能の中から、私のsmoothScrollByメソッドを呼び出していましたしていることが示されましたスクロールします。どうやら、私が関数内で呼び出すときには、変更は実際には適用されなかったので、スクロールできませんでした。
はこのように、私は次のように彼の助言を使用してコードを変更:
public class RecordGameActivity3 extends Activity {
ScrollView myView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recordgame3);
myView = (ScrollView)findViewById(R.id.scrollView1);
// New code that listens for a change in the scrollView and then calls the scrollBy method.
ViewTreeObserver vto = myView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
myView.smoothScrollBy(0, 100);
}});
}
public void addPlayer(View v)
{
//Code that is called on an onClick listener that adds things to the ScrollView making it scrollable.
}
}
OK - 私はonCreateメソッドからやっていませんが、私はそれをスクロールできるコンポーネントを追加するだけの方法でそれをやっています。 ViewTreeObserverはどのように使用できますか? –
心配しないでください - 私はどのように考え出しましたか?ご助力ありがとうございます。 –