在嵌套滚动视图中向上滚动时如何在单击侦听器上设置为嵌套滚动视图

时间:2020-01-26 18:54:16

标签: android android-studio android-nestedscrollview

您好,有一个嵌套滚动视图,我想在嵌套滚动视图上设置点击侦听器,以便在向上滚动嵌套滚动视图时可以执行某些操作,例如在向上滚动嵌套滚动时显示吐司显示向上滚动视图,并用于显示在向下滚动嵌套滚动视图时向下滚动的吐司面包

这是我的嵌套滚动视图


<androidx.core.widget.NestedScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clipToPadding="false"
            app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_margin="5dp">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/lorem_ipsum"
                    />

            </LinearLayout>

        </androidx.core.widget.NestedScrollView>

2 个答案:

答案 0 :(得分:0)

我认为您可以使用SwipeRefreshLayout而不是NestedScrollView。您可以通过回调管理滚动功能。

答案 1 :(得分:0)

为滚动视图分配一个ID


 <androidx.core.widget.NestedScrollView
            android:id="@+id/nested_scroll_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clipToPadding="false"
            app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_margin="5dp">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/lorem_ipsum"
                    />

            </LinearLayout>

        </androidx.core.widget.NestedScrollView>

声明您的滚动视图


 NestedScrollView nestedScrollView;

通过ID查找滚动视图


 nestedScrollView = view.findViewById(R.id.nested_scroll_view);

将滚动更改侦听器设置为nestedScrollView


nestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
            @Override
            public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {

                if (scrollY>scrollX){
                    Toast.makeText(getContext(), "Scrolling Down", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getContext(), "Scrolling Up", Toast.LENGTH_SHORT).show();
                }
            }
        });

瞧,将您的操作放在if语句中