gpt4 book ai didi

android - 如何创建具有 ViewPager 功能的水平 ScrollView ?

转载 作者:行者123 更新时间:2023-11-30 03:52:28 25 4
gpt4 key购买 nike

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

这是我被分配要解决的任务:

enter image description here

  • 创建一个允许分页的 View *(通过使用 View Pager 并在两个 fragment 之间交换来解决)
  • 让两个 View 共享相同的背景并产生视差效果(示例:当分页到绿色 View 时,下方红色 View 中的元素移动速度略慢于背景)
  • 找到一种方法让这两个 View “共享”图形。我们的想法是在红色 View 上制作一个“越过”绿色 View 的动画。

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

最佳答案

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

这是,我是怎么做的

1) 使 CustomViewpager 扩展 ViewPager2) 像这样覆盖 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) 并从这样的 Activity 中设置 childId

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

5)完成

逻辑是,当您触摸 Horizo​​ntalScrollview 时,触摸给 child ,否则触摸给 parent

关于android - 如何创建具有 ViewPager 功能的水平 ScrollView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13929335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com