ListView の項目の内容は少し複雑であるため、ListView が特定の項目に移動するのに数秒かかります。だから私はそれをスムーズにするために不確定な進行状況バーを追加したいと思います。
特定の項目に移動するには、listView.setSelection(n) を使用しました。次に、「setOnItemSelectedListener」イベントハンドラーを使用して、ローリング後に進行状況バーを非表示にする傾向がありました。しかし、イベント ハンドラは呼び出されません。
私の概念が完全に間違っている可能性があります。その方法がわかりません(この場合のように使用する進行状況バー)。コンセプトを見せていただければ詳細も大歓迎です。
どうもありがとうございました。
public class ListViewAdapter extends BaseAdapter {
private ProgressBar progressBar;
private Handler progressBarHandler = new Handler();
boolean isProgressBarDone;
private void jumpToSelectedItem(View arg0) {
...
listView.setSelection(selectedDaYunItem);
}
ListView listView = (ListView)((MyActivity)cellView.getContext()).findViewById(R.id.listview);
listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
// onItemSelected event handler has not triggered.
@Override
public void onItemSelected(AdapterView<?> arg0,
View arg1, int arg2, long arg3) {
isProgressBarDone = true;
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
public class LiouYunCellAdapter {
cellView.setOnTouchListener(new View.OnTouchListener() {
// It takes a little seconds to operate.
private void jumpToSelectedItem(View arg0) {
....
}
@Override
public boolean onTouch(View arg0, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
progressBar = findProgressBar(arg0);
// ProgressBar start.
new Thread(new Runnable() {
public void run() {
isProgressBarDone = false;
while (!isProgressBarDone) {
// Update the progress bar
progressBarHandler.post(new Runnable() {
public void run() {
progressBar.setVisibility(View.VISIBLE);
}
}
});
}
}).start();
jumpToSelectedItem(arg0);
}
}
return true;
}
});
// End setOnTouchListener().
}
// end class LiouYunCellAdapter.
}