1

我已经尝试通过使用 viewpager 找出解决此问题的方法,但我一直无法完全这样做。

以下是我被分配解决的任务:

在此处输入图像描述

  • 创建一个允许分页的视图*(通过使用视图分页器并在两个片段之间交换来解决)
  • 让两个视图共享相同的背景并产生视差效果(示例:下面红色视图中的元素在分页到绿色视图时移动比背景稍慢)
  • 找到让这两个视图“共享”图形的方法。这个想法是在红色视图上有一个动画,“跨越”到绿色视图。

有没有办法在安卓平台上解决这个问题?有没有办法简单地定义一个大于手机尺寸的布局,并且能够以某种方式在视图的可见部分和不可见部分之间进行分页?

4

1 回答 1

1

你应该处理 onInterceptTouchEvent。当您单击 Horizo​​ntalScrollview 时,您应该在 onInterceptTouchEvent 中返回 false,否则返回 true;

这是,我是怎么做的

1)使 CustomViewpager 扩展 ViewPager 2)像这样覆盖 onInterceptTouchEvent

 @Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
     if (childId > 0) {
         View scroll = findViewById(childId);
         if (scroll != null) {
             Rect rect = new Rect();
             scroll.getHitRect(rect);
             if (rect.contains((int) event.getX(), (int) event.getY())) {
                 return false;
             }
         }
     }
     return true;
}
private int childId;
public void setChildId(int id) {
    this.childId = id;
}

3)像这样在xml中使用customViewpager而不是viewpager

<com.packagename.CustomViewpager .....

4)并从这样的活动中设置childId

CustomViewpager cv=(CustomViewpager)findViewById(R.id.id_of_customviewpager);
cv.setChildId(R.id.id_of_customviewpager);

5)完成

逻辑是当你触摸 Horizo​​ntalScrollview 时给孩子触摸,否则给父母触摸

于 2012-12-26T08:02:36.527 回答