3

私はスクロールのためのいくつかのソースコードを持っています。setScrollX関数がうまく動作しません

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    TextView tv = findViewById(R.id.txtv); 
    HorizontalScrollView sv = findViewById(R.id.scroll); 

    sv.setScrollX(100); 
} 

xスクロール位置を100pxに設定したいとします。 しかし、setScrollX関数がうまくいきません。 どうしたのですか?どうすればいいですか?

+1

setScrollX()はピクセルであり、dpではありません。あなたは現在どのような出力を得ていますか? –

+0

あなたの返信ありがとう。現在、xスクロール位置は決して移動しません。 –

+0

縦または横にスクロールしたいですか?垂直方向にスクロールするには、setScrollY()を水平方向に使用します。setScrollX() –

答えて

1

です。 HorizontalScrollViewが配置されるまで、スクロールを遅らせる必要があります。

 

    protected void onCreate(Bundle savedInstanceState) { 
     ... 
     HorizontalScrollView sv = findViewById(R.id.scroll); 
     sv.post(new Runnable() { 
      @Override 
      public void run() { 
       sv.smoothScrollBy(100, 0); 
      } 
     }) 
    } 
 
+0

素晴らしい。ありがとう。 –

0

あなたがしなければならない問題はその時点で実際のビューはまだレイアウトされていないこと、である

  sv.post(new Runnable() { 
      @Override 
      public void run() { 
       sv.smoothScrollBy(100, 0);// x,y 
      } 
     }); 
+0

'postDelayed'が過剰です、普通の' post'は良いです。 – azizbekian

+0

素晴らしいです。ありがとう。 –

+0

@azizbekianいい、私の答えを編集させてください。 –

関連する問題