gallery菜單滑動有一個不好的效果就是每次經過中間的菜單都預設是被選中狀態,同時會載入資料 以至於切換不流暢,有一種卡卡的感覺!!其實用線程來處理這個問題,一定的時間後如果選擇的index值不變,說明已經穩定不變。廢話少說,上部分代碼!
//----------------------用到的常量-----------------------------
private int showingIndex = -1;
private static final int TIME_OUT_DISPLAY =300;
private int toShowIndex = 0;
//--------------------------------------------------
//在選中事件裡面做處理
public void onItemSelected(AdapterView<?> parent, View v, final int position,
long id) {
//--------------------------------------------------
toShowIndex = position;
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if(showingIndex != toShowIndex){
showingIndex = toShowIndex;
menu_position = position;
//做你的商務邏輯處理
}
}
};
Thread checkChange = new Thread() {
@Override
public void run() {
int myIndex = toShowIndex;
try {
sleep( TIME_OUT_DISPLAY );
if( myIndex == toShowIndex ){
handler.sendEmptyMessage(0);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
checkChange.start();
}
ok,這樣你就可以暢通無阻的滑動你的組件了!!基本上是不會在出現一卡一卡的情況了!
結合titlegall.setCallbackDuringFling(false);使用,可製作頂部或底部滑動導覽列。