`
crazier9527
  • 浏览: 994821 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android gallery滑动惯性问题

阅读更多

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,这样你就可以畅通无阻的滑动你的组件了!!基本上是不会在出现一卡一卡的情况了!

 

转自:http://hi.baidu.com/mklzdd/blog/item/4c526b52ca27c4030cf3e3dd.html

分享到:
评论
5 楼 changanfounder 2012-12-06  
hmc1985 写道
setCallbackDuringFling(false);就搞定了,哪用你这么复杂?


哥们诺诺的问一句,如果是点击呢?隔着中间焦点外点击中间经过的item都会加载的,
源码中有个函数:setCallbackOnUnselectedItemClick(),但是在2.1系统上找不到此方法呢?
4 楼 ron.luo 2012-01-30  
呵呵..setCallbackDuringFling(),这个属性顶!
3 楼 crazier9527 2011-12-19  
hmc1985 写道
setCallbackDuringFling(false);就搞定了,哪用你这么复杂?

呵呵,不错,谢谢
2 楼 hmc1985 2011-12-05  
setCallbackDuringFling(false);就搞定了,哪用你这么复杂?
1 楼 hklongshao 2011-03-09  
其实gallary本事有一个属性,setCallbackDuringFling()

你试试

相关推荐

Global site tag (gtag.js) - Google Analytics