如何使用ViewPager功能创建水平滚动视图?

时间:2012-12-18 08:52:49

标签: android android-viewpager horizontalscrollview

我试图通过使用viewpager找出解决此问题的方法但我完全无法这样做。

以下是我被指派解决的任务:

enter image description here

  • 创建一个允许分页的视图*(通过使用View Pager解决并在两个片段之间交换)
  • 让两个视图以相同的效果共享相同的背景(例如:下面的红色视图中的元素移动到绿色视图中的背景时略慢于背景)
  • 找到这两种观点的方式来分享"分享"图形。我们的想法是在红色视图上制作一个动画,并且#34;越过"到了绿色的景色。

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

1 个答案:

答案 0 :(得分: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)使用customViewpager代替xml中的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给孩子触摸其他明智的触摸父母