如何在android中的NestedScrollView中应用平滑垂直滚动

时间:2017-08-28 06:00:31

标签: android

<android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:background="#e7e7e8"
            android:orientation="vertical"
            tools:ignore="RtlHardcoded">

            <android.support.v7.widget.RecyclerView
                android:id="@+id/recyclerView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

            <android.support.v7.widget.RecyclerView
                android:id="@+id/communication_recyclerView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />


            <android.support.v7.widget.RecyclerView
                android:id="@+id/vision_recyclerView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />


            <android.support.v7.widget.RecyclerView
                android:id="@+id/hearing_recyclerView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />


            <android.support.v7.widget.RecyclerView
                android:id="@+id/physical_dependency_recyclerView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />


            <android.support.v7.widget.RecyclerView
                android:id="@+id/selef_care_recyclerView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"

                />

        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>

这是我的代码我已经在NestedScrollView中使用了6个RecyclerView但是当我垂直滚动时,平滑滚动不起作用可以任何一个请建议我如何在NestedScrollView中应用平滑滚动

4 个答案:

答案 0 :(得分:2)

recyclerviews内添加NestedScrollView并不是一个好习惯。如果可能的话,避免这种情况。
这是一些替代方案......

  • 将项目用作recyclerview项目 - 多种类型 recyclerview
  • 使用recyclerview的水平方向显示 内容很好。

答案 1 :(得分:1)

如果您在NestedScrollView中使用RecyclerView,请使用mRecyclerView.setNestedScrollingEnabled(false);

如果在NestedScrollView或仅NestedScrollView中无法顺利滚动RecyclerView,请确保您的compileSdkVersion与您当前使用的库版本匹配。

例如。在您的所有build.gradle文件中compileSdkVersion 25 buildToolsVersion&#39; 25.0.3&#39;

然后你的支持appcompact库版本

compile "com.android.support:appcompat-v7:25.3.1"

如果您找不到您的不匹配库版本,请在Android Studio Terminal中运行以下命令。它应该根据compileSdkVersion获取当前使用的库版本和最新的库版本。

./gradlew -q dependencies app:dependencies --configuration compile

答案 2 :(得分:0)

请尝试以下代码,将此行添加到RecyclerView

  android:fadeScrollbars="false"
  android:nestedScrollingEnabled="true"

(OR)

以编程方式使用以下代码。

mRecyclerView.setOnTouchListener(new View.OnTouchListener() {
            // Setting on Touch Listener for handling the touch inside ScrollView
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // Disallow the touch request for parent scroll on touch of child view
                NestedScrolling.setScrollContainer(false);
                v.getParent().requestDisallowInterceptTouchEvent(true);
                return false;
            }
        });

我希望这对你有所帮助。

答案 3 :(得分:-1)

NestedScrollView insinde ScrollView。

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">