Recyclerview 上的加速滚动
Posted
技术标签:
【中文标题】Recyclerview 上的加速滚动【英文标题】:Accelerated Scroll on Recycle View 【发布时间】:2016-07-31 01:24:00 【问题描述】:我有一个包含 CardsView 列表的 RecycleView。 RecycleView 在 NestedScrollView 中,因为我有一个可折叠的标题。 滚动没有加速,当我将手指从屏幕上移开时它停止滚动,我想要加速滚动。
这些是我的布局。
<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:layout_
android:layout_
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".articles.ArticlesActivity"
tools:showIn="@layout/activity_articles"
>
<android.support.v7.widget.RecyclerView
android:id="@+id/articles_lista"
android:layout_
android:layout_
android:fadeScrollbars="true"
android:scrollbars="vertical"
/>
</android.support.v4.widget.NestedScrollView>
我的 CardView 布局容器。
<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/articles_card"
android:layout_
android:layout_
card_view:cardCornerRadius="6dp"
card_view:cardUseCompatPadding="true"
card_view:cardPreventCornerOverlap="true"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
card_view:cardElevation="5dp"
android:overScrollMode="always"
android:fadeScrollbars="true">
<LinearLayout
android:orientation="vertical"
android:layout_
android:layout_>
<TextView
android:layout_
android:layout_
android:padding="10dp"
android:id="@+id/article_card_title"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#000"/>
</LinearLayout>
</android.support.v7.widget.CardView>
还有JAVA代码:
RecyclerView recyclerView = (RecyclerView)findViewById(R.id.articles_lista);
LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
recyclerView.setLayoutManager(layoutManager);
ArticlesAdapter adapter = new ArticlesAdapter(Mock.getNoticias(1L), this);
recyclerView.setAdapter(adapter);
谢谢。
编辑:
我的新布局正在运行,看起来像:
<RelativeLayout 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:layout_
android:layout_
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="newser.sab.com.newser.articles.ArticlesActivity2"
tools:showIn="@layout/app_bar_articles2">
<android.support.v7.widget.RecyclerView
android:id="@+id/articles_lista"
android:layout_
android:layout_
android:fadeScrollbars="true"
android:scrollbars="vertical"
/>
</RelativeLayout>
【问题讨论】:
我也有同样的问题,有解决办法吗? 【参考方案1】:正在改变布局:
<RelativeLayout 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:layout_
android:layout_
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="newser.sab.com.newser.articles.ArticlesActivity2"
tools:showIn="@layout/app_bar_articles2">
<android.support.v7.widget.RecyclerView
android:id="@+id/articles_lista"
android:layout_
android:layout_
android:fadeScrollbars="true"
android:scrollbars="vertical"
/>
【讨论】:
【参考方案2】:那是因为您将RecyclerView
设置在ScrollView
中。
因此,要使其滚动更快,请将此行添加到您的 xml 文件中的RecyclerView
Tag
android:nestedScrollingEnabled="false"
或者在你的 Java 文件中动态添加这一行
recyclerView.setNestedScrollingEnabled(false);
【讨论】:
以上是关于Recyclerview 上的加速滚动的主要内容,如果未能解决你的问题,请参考以下文章
使用 Recycler View 将房间数据库滚动到特定位置