转载请注明出处
http://blog.youkuaiyun.com/slow_liao
思考:
ListView自身是个上下滑动的view,当我们在Activity监听左右滑动事件时,很多时候我们会发现,会在ListView中没有达到理想效果,但是否就没有解决的办法呢?当然不是,没有实现不了的效果,只有实现不了的程序员。
案例:
网易新闻
借鉴:
网上有很多种解决思路,比如HorizontalScrollView,或者Gallery,或者ViewGroup,或者ViewPager
实现:
今天实现了一个简单的左右滑动ListView效果,下面贴出核心源代码
关于ListView部分:
GestureDetector listGD = new GestureDetector(new ListGest(listView.getContext()));
listView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return listGD.onTouchEvent(event);
}
});
关于ListGest实现
class ListGest implements OnGestureListener{
private Context context;
public ListGest(Context context) {
this.context = context;
}
@Override
public boolean onDown(MotionEvent e) {
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
int x1 = (int)e1.getX();
int x2 = (int)e2.getX();
if(x1-x2<-50){
Toast.makeText(context, "kk向左滑动", Toast.LENGTH_SHORT).show();
}else if(x1-x2>50){
Toast.makeText(LCMainActivity.this, "kk向右滑动", Toast.LENGTH_SHORT).show();
}
return false;
}
@Override
public void onLongPress(MotionEvent e) {}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
return false;
}
@Override
public void onShowPress(MotionEvent e) {}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}}
}
希望路过的牛人,提出更为优化的建议,您的批评,是我进步的阶梯。
Thanks~
转载请注明出处:
http://blog.youkuaiyun.com/slow_liao