gpt4 book ai didi

android - 如何在 RecyclerView 中使用 fastScrollEnabled?

转载 作者:可可西里 更新时间:2023-11-01 18:52:21 27 4
gpt4 key购买 nike

我是 RecyclerView 的新手,我想在 RecyclerView 中实现快速滚动功能,例如谷歌联系人应用程序并在互联网上搜索,我发现现在 Android 正式为 RecyclerView 提供了新的 fastScrollEnabled bool 标志。所以我的问题是有人可以提供它的示例实现。

这里是google的官方文档 https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0

最佳答案

借助 Support Library 26,我们可以轻松地为 RecyclerView 启用快速滚动。让我们开始吧!

让我们一一检查每个属性:

  1. fastScrollEnabled :启用快速滚动的 bool 值。将此设置为 true 将需要我们提供以下四个属性。
  2. fastScrollHorizo​​ntalThumbDrawable :一个 StateListDrawable,用于绘制可拖动的拇指横轴。
  3. fastScrollHorizo​​ntalTrackDrawable :一个 StateListDrawable,用于绘制代表滚动条的线条横轴。
  4. fastScrollVerticalThumbDrawable:一个 StateListDrawable,用于绘制可在垂直轴上拖动的拇指。
  5. fastScrollVerticalTrackDrawable :一个 StateListDrawable,用于绘制代表滚动条的线条垂直轴。

在build.gradle中添加

    dependencies {
....
compile 'com.android.support:design:26.0.1'
compile 'com.android.support:recyclerview-v7:26.0.1'
....
}

由于 Support Library 26 现已移至 Google 的 Maven 存储库,让我们将其包含在我们的项目级别 build.gradle

allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}

activity_main.xml

<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:fastScrollEnabled="true"
app:fastScrollHorizontalThumbDrawable="@drawable/thumb_drawable"
app:fastScrollHorizontalTrackDrawable="@drawable/line_drawable"
app:fastScrollVerticalThumbDrawable="@drawable/thumb_drawable"
app:fastScrollVerticalTrackDrawable="@drawable/line_drawable">

</android.support.v7.widget.RecyclerView>

在你的drawable文件夹中添加以下四个xml文件,

line_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/line"/>

<item
android:drawable="@drawable/line"/>
</selector>

line.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<solid android:color="@android:color/darker_gray" />

<padding
android:top="10dp"
android:left="10dp"
android:right="10dp"
android:bottom="10dp"/>
</shape>

thumb_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/thumb"/>

<item
android:drawable="@drawable/thumb"/>
</selector>

thumb.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<corners
android:topLeftRadius="44dp"
android:topRightRadius="44dp"
android:bottomLeftRadius="44dp" />

<padding
android:paddingLeft="22dp"
android:paddingRight="22dp" />

<solid android:color="@color/colorPrimaryDark" />

</shape>

关于android - 如何在 RecyclerView 中使用 fastScrollEnabled?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45370246/

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