我想创建一个显示ListView的Android应用程序,列表项应该是ViewPager。每个列表项(ViewPager)都应该有一个从Internet获取的图像列表。
答案 0 :(得分:0)
因为您在垂直触摸手势视图中有水平触摸手势,如果您只是将ViewPager
放在ListView
内,用户体验就会很差。我在某个地方发现了这个,我使用它,效果很好。如果你将ViewPager
放在其中,那么用户体验就会很好。
public class ViewPagerCompatibleListView extends ListView {
private float xDistance, yDistance, lastX, lastY;
public ViewPagerCompatibleListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
xDistance = yDistance = 0f;
lastX = ev.getX();
lastY = ev.getY();
break;
case MotionEvent.ACTION_MOVE:
final float curX = ev.getX();
final float curY = ev.getY();
xDistance += Math.abs(curX - lastX);
yDistance += Math.abs(curY - lastY);
lastX = curX;
lastY = curY;
if (xDistance > yDistance)
return false;
}
return super.onInterceptTouchEvent(ev);
}
}