向上和向下滚动时,Android NestedScrollView处于滞后状态

时间:2017-02-21 12:03:35

标签: java android xml nestedscrollview

我在Coordinatorlayout中创建了一个包含3个片段的viewpager 在每个Viewpager中,您都可以找到包含一些内容的NestedScrollView 但是,如果我在内容上下滚动内容。
我用普通的ScrollView测试并替换了NestedScrollView,它很流畅。这个问题与nestedscrollview有关 我希望得到一些帮助。感谢。

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay"/>

        <android.support.design.widget.TabLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/tab_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="top"
            app:tabGravity="fill"
            app:tabIndicatorColor="@color/black"
            app:tabIndicatorHeight="1dp"
            app:tabMaxWidth="0dp"
            app:tabMode="fixed"
            app:tabSelectedTextColor="@color/white"
      app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
            app:tabTextColor="@color/black"/>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

    <include
        android:id="@+id/floating_action_button"
        layout="@layout/floating_action_button_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</android.support.design.widget.CoordinatorLayout>

在viewpager中,您可以找到:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragment_first"
    style="@style/NestedScrollBarStyle"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    app:layout_scrollFlags="scroll|enterAlways"
    tools:context="com.amirkhan.template1.MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="16dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:text="111111111111111111111111111"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:text="111111111111111111111111111"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:text="111111111111111111111111111"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:text="111111111111111111111111111"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:text="111111111111111111111111111"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="sadsff"/>
    </LinearLayout>

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

after adding android:nestedScrollingEnabled="false"

3 个答案:

答案 0 :(得分:1)

H Amir,

请在代码中添加以下行

recyclerView.setNestedScrollingEnabled(false);

答案 1 :(得分:0)

使用此代码

<?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.NestedScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/fragment_first"
        style="@style/NestedScrollBarStyle"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        app:layout_scrollFlags="scroll|enterAlways"
        android:nestedScrollingEnabled="false"
        tools:context="com.amirkhan.template1.MainActivity">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="16dp">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:text="111111111111111111111111111"/>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:text="111111111111111111111111111"/>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:text="111111111111111111111111111"/>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:text="111111111111111111111111111"/>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:text="111111111111111111111111111"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="sadsff"/>
        </LinearLayout>

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

答案 2 :(得分:0)

这是我制作的并且工作正常。

你最需要的部分是:

python setup.py bdist_wheel

我为你制作了这个,所以你可以尝试一下。

<android.support.v4.widget.NestedScrollView
android:id="@+id/bottom_sheet"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="true"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior">