gpt4 book ai didi

android - 通过触摸更新 CoordinatorLayout.Behaviour 滚动时,以编程方式滚动 Recycler View 不会更新 CoordinatorLayout.Behaviour

转载 作者:行者123 更新时间:2023-11-30 00:34:38 30 4
gpt4 key购买 nike

我提到了 This Question但没有答案对我有用。所以基本上我有一个 BottomNavigationView,它在向下滚动时隐藏并在向上滚动时显示。当我通过触摸滚动 Recycler View 时它工作正常但当我以编程方式滚动 RecyclerView 时它不起作用。似乎在以编程方式滚动时它不会触发 CoordinatorLayout.Behaviour。在某些情况下,我必须打开包含 RecyclerView 的 fragment 并滚动到某个位置,并且 BottomNavigationView 隐藏它必须在用户向上滚动时返回这意味着我不不想隐藏 BottomNavigationView 的可见性,只需通过编程方式或触摸方式在滚动时隐藏即可。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.kliff.digitaldwarka.activity.MainActivity">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:id="@+id/myAppBar"
app:elevation="0dp"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:contentInsetStart="0dp"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

<android.support.design.widget.BottomNavigationView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:itemBackground="@android:color/white"
android:id="@+id/bottom_nav"
android:layout_gravity="bottom"
app:menu="@menu/bottom_nav_menu"/>
</android.support.design.widget.CoordinatorLayout>
<com.appeaser.sublimenavigationviewlibrary.SublimeNavigationView
android:id="@+id/nav_view"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_gravity="start"
app:snvHeaderLayout="@layout/nav_header"
app:snvMenu="@menu/nav_menu"
style="@style/NavigationViewStyle"
app:snvItemTextColor="#555555"
app:snvSubheaderItemTextColor="#555555"
app:snvItemIconTint="#555555"
app:snvBadgeTextColor="#555555"
app:snvHintTextColor="#757575"
app:snvHintTypefaceStyle="normal"
app:snvBadgeTypefaceStyle="normal"
app:snvSubheaderItemTypefaceStyle="normal"
app:snvItemTypefaceStyle="normal" />
</android.support.v4.widget.DrawerLayout>

fragment_category.xml

<android.support.v7.widget.CardView
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="wrap_content"
app:cardElevation="1dp"
app:cardUseCompatPadding="true">
<android.support.v7.widget.RecyclerView
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical" />
</android.support.v7.widget.CardView>

Code For scrolling

 mRecyclerView.getLayoutManager().scrollToPosition(34); //specific postion

通过这种方式滚动我怎样才能实现这种行为。感谢任何帮助。

最佳答案

CoordinatorLayout.Behaviour 仅适用于 NestedScroll 事件。当您尝试以编程方式滚动 RecyclerView 时,它被视为正常滚动。

写下一行以通知 RecyclerView 启动 NesteadScroll,使用 ViewCompat.SCROLL_AXIS_VERTICALViewCompat.TYPE_NON_TOUCH

ViewCompat.SCROLL_AXIS_VERTICAL:表示沿垂直轴滚动。ViewCompat.TYPE_NON_TOUCH:表示手势的输入类型是由非用户触摸屏幕的东西引起的。这通常来自正在稳定的恋情。

recycler_view.startNestedScroll(ViewCompat.SCROLL_AXIS_VERTICAL, ViewCompat.TYPE_NON_TOUCH)
recycler_view.smoothScrollBy(0,200)

关于android - 通过触摸更新 CoordinatorLayout.Behaviour 滚动时,以编程方式滚动 Recycler View 不会更新 CoordinatorLayout.Behaviour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43626102/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com