如何在viewpager片段中的recyclerview中添加swipelayout?

时间:2015-05-07 07:11:23

标签: android android-viewpager android-recyclerview swipeview

我在RecyclerView项目中使用AndroidSwipeLayout进行“滑动删除”操作。由于RecyclerView的父级是ViewPager Fragment,因此滑动不起作用。 SwipeLayout还包含parent.requestDisallowInterceptTouchEvent(true);从父级拦截touchEvent。在不禁用ViewPager滑动的情况下,解决此问题的方法是什么。

1 个答案:

答案 0 :(得分:4)

您必须在适配器中使用setOnTouchListener作为列表行,如下所示:

yourListRowContent.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_MOVE) {
                    yourViewPager.setPagerEnabled(false);
                }
                return true;
            }
        });

使用yourViewPager.setPagerEnabled(false);时,当您滑动列表内容时,它会使您的viewpager无效,但在Fragment中再次执行此操作(这将重新激活您的viewpager):

yourRecyclerViewInFragment.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            HomeFragment.mPager.setPagerEnabled(true);
            return false;
        }
    });