ViewPager与HorizontalListView冲突问题,请大神指教

qq_16212605 2015-11-23 07:30:02
在fragment中我把horizontalLlistView加到了StickyListHeadersListView的头部,怎样才能做到滑动HorizontalListView时不会滑动ViewPager
...全文
221 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jklwan 2015-11-27
  • 打赏
  • 举报
回复
stackoverflow上的解决方案,自定义Viewpager,代码如下,
public class CustomViewPager extends ViewPager {

    private int childId;    

    public CustomViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }   

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        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 super.onInterceptTouchEvent(event);
    }

    public void setChildId(int id) {
        this.childId = id;
    }
}
使用的时候如下

viewPager.setChildId(R.id.horizontalScrollViewId);
adapter = new ViewPagerAdapter(this);
viewPager.setAdapter(adapter);
就是给Viewpager设置这个horizontalScrollViewId,当在horizontalScrollView中滑动时就不会滑动viewpager。对于你这个HorizontalListView用法应该是一样的。当然现在建议用RecyclerView来做横向滑动,RecyclerView很强大。
cxzczxcxzc 2015-11-27
  • 打赏
  • 举报
回复
2楼说的并没用啊
KE南 2015-11-24
  • 打赏
  • 举报
回复
建议使用RecyclerView Horizontallistview 目测快要废弃了 。必须得在原生的基础上改,而且分分钟改出bug
阿飞__ 2015-11-23
  • 打赏
  • 举报
回复
你的HorizontalListView嵌套在ViewPager里面么? 自己写一个类继承HorizontalListView,然后在onTouchEvent()中返回true就不会把事件传递给ViewPager消费了

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧