简体   繁体   English

当ScrollView中的RecyclerView时,Recyclerview onscrolllistener不起作用

[英]Recyclerview onscrolllistener not working when RecyclerView inside a ScrollView

I want to have a pagination for the recyclerview but , In my case , the recyclerView is inside a ScrollView. 我想对recyclerview进行分页,但是,就我而言,recyclerView在ScrollView内。 So the onscrollListener not working as expected. 因此,onscrollListener无法正常工作。 So I am planning to find the scroll end for the ScrollView and will fire the next page request. 因此,我计划为ScrollView找到滚动端,并将触发下一个页面请求。

Is this a good solution or Do somebody have a better idea? 这是一个好的解决方案还是有人有更好的主意?

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:orientation="vertical">

        <ScrollView android:layout_width="match_parent"
                    android:layout_height="match_parent" android:fillViewport="false">
            <LinearLayout android:layout_width="match_parent"
                          android:orientation="vertical"
                          android:layout_height="wrap_content">


                <FrameLayout android:id="@+id/headerContainer"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"/>

                <android.support.v4.view.ViewPager
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"/>

            </LinearLayout>
        </ScrollView>


</LinearLayout>

You can use the following code for intercepting the RecyclerView scrolls and can fine tune your scroll events on basis of that, I hope it help 您可以使用以下代码来拦截RecyclerView滚动,并以此为基础微调滚动事件,希望对您有所帮助

mList.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
            float rawX;
            int mSlop = ViewConfiguration.get(getActivity()).getScaledTouchSlop();

            @Override
            public boolean onInterceptTouchEvent(RecyclerView v, MotionEvent event) {
                switch (event.getActionMasked()) {
                    case MotionEvent.ACTION_DOWN:
                        v.getParent().requestDisallowInterceptTouchEvent(true);
                        rawX = event.getRawX();
                        break;
                    case MotionEvent.ACTION_CANCEL:
                    case MotionEvent.ACTION_UP:
                        v.getParent().requestDisallowInterceptTouchEvent(false);
                        rawX = 0f;
                        break;
                    case MotionEvent.ACTION_MOVE:
                        if (Math.abs(rawX - event.getRawX()) > mSlop)
                            v.getParent().requestDisallowInterceptTouchEvent(true);
                        break;
                }
                return false;
            }

            @Override
            public void onTouchEvent(RecyclerView rv, MotionEvent e) {

            }

            @Override
            public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

            }
        });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在向下滚动时,recyclelerview内部的嵌套scrollview不会触发onscrolllistener - nested scrollview inside recyclerview not triggering onscrolllistener when scrolling down recyclerview onScrollListener无法正常工作 - recyclerview onScrollListener not working correctly ScrollView 内的 RecyclerView 不工作 - RecyclerView inside ScrollView is not working 当 setNestedScrollingEnabled 为 false 时,Recyclerview onscrolllistener 不起作用 - Recyclerview onscrolllistener not working when setNestedScrollingEnabled to false RecyclerView 无法在 ScrollView 内正常工作 - RecyclerView not working inside a ScrollView properly 当 recyclerview 放置在 scrollview/nestedScrollView 中时,scrollToPosition 方法不起作用 - scrollToPosition method not working when recyclerview is placed inside scrollview/nestedScrollView 滚动视图内的 ViewPager 内的 Recyclerview 不起作用 - Recyclerview inside ViewPager inside scrollview not working 滚动视图内的 firebase recyclerview 中的 updateoptions 不起作用 - updateoptions in firebase recyclerview inside scrollview not working android:ScrollView中的RecyclerView - android: RecyclerView inside a ScrollView 布局在ScrollView内部的RecyclerView时加油 - Layout Jerking when RecyclerView inside a ScrollView
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM