私が持っているのは、進行状況の設定/取得を使用するスライダーではなく、ボタンで制御されるシークバーです。
ユーザーがボタンを押すとシークバーの進行状況が増加し、ボタンを離すと増加を停止しようとしています。アップとダウンを検出する onkey リスナーがあります。ACTION_DOWN にループを配置すると、ACTION_UP を検出するのではなくループします。ACTION_DOWN の while ループがある場合、同じことが発生するようです。
refreshDraweableState も設定する必要があると思いますが、それについてもあまり調べていません。
シークバーをいじりすぎている可能性がありますが、助けやアドバイスをいただければ幸いです。ありがとう!
これは、私がほとんどいじっていた私のキーリストナーです。
public boolean onKey(View view, int keyCode, KeyEvent event) {
builder.setLength(0);
switch (event.getAction()){
case KeyEvent.ACTION_DOWN:
builder.append(event.getKeyCode());
String text = builder.toString();
Log.w("seekbar", text);
textView.setText(text);
while (sk.getProgress() < 100){
sk.setProgress(sk.getProgress()+1);
sk.refreshDrawableState();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
break;
}
}
break;
case KeyEvent.ACTION_UP:
break;
}
return true;
}
}