Seekbar
フラグメントでを使用しており、Seekbar
を別の位置に移動する必要があります。ただし、機能しsetProgress(xxx)
ていません。
Seekbar
:に対してプログラムでこのメソッドをトリガーするにはどうすればよいですpublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
か? 手動で移動するとSeekbar
うまくいきます。
Seekbar
フラグメントでを使用しており、Seekbar
を別の位置に移動する必要があります。ただし、機能しsetProgress(xxx)
ていません。
Seekbar
:に対してプログラムでこのメソッドをトリガーするにはどうすればよいですpublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
か? 手動で移動するとSeekbar
うまくいきます。
これは、ProgressBar のバグです。
同じ値が再度渡された場合、はsetProgress(...)
更新をトリガーしないようです。drawable
ただし、setMax の間もトリガーされません。そのため、更新はありません。
bar.setProgress(0)
これを解決するために、私は各更新の前にやっています...これは単なる回避策ですが、期待どおりに機能します:
bar.setProgress(0); // call these two methods before setting progress.
bar.setMax(20);
bar.setProgress(20);
2 番目のオプション。
mSeekBar.post(new Runnable() {
@Override
public void run() {
mSeekBar.setProgress(percentOfFullVolume);
}
});
それは誰かのために働くかもしれません。
最初に最大値を設定してから進行状況を設定してみてください。
ほとんどの場合、SeekBar は問題なく動作します。時々、そうではありません。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//...
seekBar.setProgress(value);
//...
}
detach() + attach() でフラグメント ビューを更新した後、コードが機能しません。私の解決策は、onViewStateRestored() 内で setProgress() を適用することです。
@Override
public void onViewStateRestored(Bundle inState) {
//...
seekBar.setProgress(value);
//...
}