xmuSistone / VerticalSlideFragment

vertical slide to switch to the next fragment page, looks like vertical viewpager
1.61k stars 305 forks source link

有个问题 #22

Closed lilongls closed 8 years ago

lilongls commented 8 years ago

第一页底部有可以横向滚动的控件时有滑动冲突。样式参考京东商品详情页第一页底部。能否搞得和京东一样的效果

xmuSistone commented 8 years ago

可以的。代码要额外添加才行

MrFuFuFu commented 8 years ago

dispatchTouchEvent 的 action_move 的时候

//MrFu 解决滑动到底部的时候, ViewPager 左右滑动冲突的问题
if (allowDragBottom){
    float dy = ev.getY() - ly;
    float dx = ev.getX() - lx;
    if (Math.abs(dy) < Math.abs(dx)) {//左右滑动
//                    Debug.i_MrFu("allowDragBottom="+allowDragBottom);
        return super.dispatchTouchEvent(ev);
    }
}
//end
xmuSistone commented 8 years ago

不是这样加的。我看一下代码。待会贴出来

xmuSistone commented 8 years ago

恩??? 奇了怪了,现在HorizontalScrollView跟CustScrollView是不冲突的啊。你怎么加的代码了。touch的拦截和分发策略,老早之前已经规避冲突了。

MrFuFuFu commented 8 years ago

ViewPager,当我把 ViewPager 加到第一页的最底部的时候,是会出现左右滑动的冲突,出现的前提是,第一页滑到低,并不触发上拉到下一页的时候

xmuSistone commented 8 years ago

不会出现问题的。是不是你用了很早之前的代码,一直没更新?现在这类问题,早就fix掉了。我自己试了,viewpager和horizontalScrollVIew都没有问题。

MrFuFuFu commented 8 years ago

噗,确实,我这里用的还是比较老的,而且是自己写的,那会你还没写 CustomScrollView,OK,有数了,我看下要不要更新到最新

xmuSistone commented 8 years ago

恩。好的

lilongls commented 8 years ago

这个确实有冲突底部是可横滑的控件先横滑小距离在上下滑会触发滑动到第二页的事件

lilongls commented 8 years ago

而京东的不是,你怎么先横滑然后竖滑都是滑动的底部横滑控件不会触发滑动到第二页的事件

xmuSistone commented 8 years ago

@lilongls 不会的了。你更新下最新代码。

xmuSistone commented 8 years ago

一旦横向滑动了,垂直滑动是被禁止的

lilongls commented 8 years ago

最新的代码在三星note3安卓4.3上极少数情况可以成功拦截事件,单绝大多数还是不行的、 float yOffset = downY - ev.getRawY(); float yDistance = Math.abs(yOffset); if (yDistance > mTouchSlop) { if (yOffset > 0 && isAtBottom) { scrollMode = TOUCH_DRAG_LAYOUT; getParent().requestDisallowInterceptTouchEvent(false); return true; } else { scrollMode = TOUCH_INNER_CONSIME; } 这代码控制的?

lilongls commented 8 years ago

复现步骤是先横滑小距离(前期)横滑幅度大了就可以拦截

xmuSistone commented 8 years ago

我不知道你做了什么样的代码定制与修改。如果你怀疑的话,你可以下载这个仓库,然后在vertical_fragment1.xml添加上这个: `<HorizontalScrollView android:layout_width="match_parent" android:layout_height="90dp">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal">
            xxxxxxx若干子Viewxxxxxxxxx
       </LinearLayout>

` 你这样加下,滑动试试,如果还有问题,你再留言吧。

xmuSistone commented 8 years ago

你们自己的代码,我是看不到的,做了怎样的修改,我也不清楚。如果有问题,也应该一点点定位。你这么说,我是真的无从下手的,因为我在模拟器和小米、魅族上跑的一点问题没有。

lilongls commented 8 years ago

123 就是在这个项目直接添加的 <HorizontalScrollView android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:padding="50dp"

xmuSistone commented 8 years ago

Apk发我邮箱看看 120809170@qq.com