如何创建材料设计,如自定义滚动条,数字和字母在recylerview中冒泡

Sha*_*van 29 android material-design

在许多新的Android应用程序及其最新更新中,这些应用程序(主要是材料设计)具有带字母和数字的自定义滚动条,而用拇指,字母或数字滚动滚动条出现在拇指旁边.我已将屏幕截图附加到滚动条的问题应用程序'Contacts'.

截图: 在此输入图像描述

那么,如何修改我的应用程序中使用recyclelerview的滚动条,创建滚动条,如带有字母和数字气泡的滚动条,或者是否为此引入了新的API或库?

小智 16

对于仍在寻找答案的人.我找到了许多提供此功能的库:

  1. https://github.com/krimin-killr21/MaterialScrollBar
  2. https://github.com/plusCubed/recycler-fast-scroll
  3. https://github.com/danoz73/RecyclerViewFastScroller
  4. https://github.com/timusus/RecyclerView-FastScroll

以上所有都提供了FastScroll机制(你正在寻找的东西) - 虽然有些看起来比其他机制更好.

我发现MaterialScrollBar最容易设置和使用,以及它有最好的化妆品(遵守材料设计指南,看起来就像联系人应用程序)的事实.

该图书馆也得到积极维护和发展,问题和公关正在关闭等.

希望这可以帮助别人,因为我花了很多时间自己寻找这个.


Ari*_*Roy 5

我可以从您的问题中了解到,您希望在Android中实现"快速滚动"功能.

此功能可让您快速滚动大型列表.您可以使用第三方库轻松实现它.

在此输入图像描述

它非常简单,重量轻,也是高度定制的.不要通过查看上面的屏幕截图来低估它.您可以轻松地使其看起来像您提供的屏幕截图.我曾经在我的一个应用程序中使用它,并获得了很好的结果.

用法

使用这个库也很简单.您只需要包含其QuickScroll布局并Scrollable在BaseAdapter上实现该接口.为这个小部件提供Material外观非常简单.

更新

由于用户的需求,对于想要了解如何在RecyclerView中使用"快速滚动"功能的所有人来说,这里适合所有人.您可以使用库.

它可以为您提供与所提供的屏幕截图非常接近(如果不准确)的结果.您只需RecyclerViewFastScroller在布局中使用小部件.

用法

步骤1

添加此依赖项

compile 'xyz.danoz:recyclerviewfastscroller:0.1.3'
Run Code Online (Sandbox Code Playgroud)

第2步

现在在您的XML中,您需要放置此小部件

<android.support.v7.widget.RecyclerView
      android:id="@+id/recyclerView"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      />

  <xyz.danoz.recyclerviewfastscroller.vertical.VerticalRecyclerViewFastScroller
      android:id="@+id/fast_scroller"
      android:layout_width="@dimen/however_wide_you_want_this"
      android:layout_height="match_parent"
      android:layout_alignParentRight="true"
      />
Run Code Online (Sandbox Code Playgroud)

然后在你的代码中

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
      View rootView = inflater.inflate(R.layout.recycler_view_frag, container, false);
      ...

      // Grab your RecyclerView and the RecyclerViewFastScroller from the layout
      RecyclerView recyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerView);
      VerticalRecyclerViewFastScroller fastScroller = (VerticalRecyclerViewFastScroller) rootView.findViewById(R.id.fast_scroller);

      // Connect the recycler to the scroller (to let the scroller scroll the list)
      fastScroller.setRecyclerView(recyclerView);

      // Connect the scroller to the recycler (to let the recycler scroll the scroller's handle)
      recyclerView.setOnScrollListener(fastScroller.getOnScrollListener());

      ...
      return rootView;
  }
Run Code Online (Sandbox Code Playgroud)

有许多其他属性可以按您希望的方式进行自定义.您可以创建与您提供的屏幕截图完全相同的外观.

使用库可以节省大量时间,但是如果你想从头开始构建这个功能,这里有一个非常有用的帖子.

希望能帮助到你.