滚动条未显示在RecyclerView中

Mic*_*idt 38 android android-layout android-scrollbar android-recyclerview

我有一个RecyclerView并且希望滚动条显示,当它覆盖多个页面时.

我根本没有滚动条.任何的想法?

我的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <CheckBox
        android:id="@+id/cl_only_empty"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:elevation="5dp"
        android:text="@string/cl_only_empty"
        android:textColor="@color/white" />

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

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

juj*_*789 37

解决方案是在xml布局中设置垂直(或水平)滚动条:

<android.support.v7.widget.RecyclerView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:scrollbars="vertical" />
Run Code Online (Sandbox Code Playgroud)

  • 这不是问题中的那个吗? (27认同)
  • -1 @Pang已经指出,OP在他的代码中已经有了"android:scrollbars".我的代码中也有这个,仍然没有滚动条... (4认同)

小智 23

使用android:scrollbars属性"vertical"和android:scrollbarThumbVertical属性来设置颜色和android:scrollbarSize属性来指定大小:

<android.support.v7.widget.RecyclerView
        android:id="@+id/document_listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="3dp"
        android:layout_marginTop="3dp"
        android:scrollbars="vertical"
        android:scrollbarThumbVertical="@android:color/darker_gray"
        android:scrollbarSize="5dp"
        android:background="@color/activity_bg"
        android:dividerHeight="4dp" />
Run Code Online (Sandbox Code Playgroud)

  • 注意:在某些设备上将背景设置为某种颜色甚至透明是必要的(某些 8.1 平板电脑出现问题)! (2认同)

smb*_*now 9

我仅在旧的 HTC Desire X (api 16) 上遇到同样的问题。
我不知道为什么,但如果未设置RecyclerView该属性,则滚动条将无法在此设备上正常工作。android:background尝试将其设置为任何颜色或透明 - 它对我有用,希望它也对您有帮助


小智 8

在xml布局中使用recyclelerView,如下所示

   <android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:scrollbars="vertical"
    android:fadeScrollbars="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent"  />
Run Code Online (Sandbox Code Playgroud)

并在java中添加下面的scrollview代码,它会没问题

 RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
 recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
 recyclerView.setHasFixedSize(true);
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用:

setScrollbarFadingEnabled(boolean)
Run Code Online (Sandbox Code Playgroud)

滚动条链接

  • 明显的替代方法是在布局定义中使用android:fadeScrollbars =“ false”。 (2认同)

Mud*_*han 5

Scroller 可以通过多种方式设置为 recyclerview。首先,您可以简单地在 xml 中添加滚动条并设置其属性 android:fadeScrollbars="false" 以始终显示它。

<android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerViewMachine"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         android:scrollbars="vertical"
        android:fadeScrollbars="false"
        android:scrollbarThumbVertical="@android:color/darker_gray"
        android:scrollbarSize="5dp"
        android:scrollbarStyle="outsideOverlay"/>
Run Code Online (Sandbox Code Playgroud)

或者您可以制作一个样式主题并在初始化 recyclerview 时以编程方式使用它

  <style name="ScrollbarRecyclerView" parent="android:Widget">
        <item name="android:scrollbars">vertical</item>
    </style>

RecyclerView recyclerView = new RecyclerView(new ContextThemeWrapper(context, R.style.ScrollbarRecyclerView));
Run Code Online (Sandbox Code Playgroud)

谢谢


mio*_*kon 2

尝试这个:

mLayoutManager = new LinearLayoutManager (this);  
mLayoutManager.setSmoothScrollbarEnabled (true);
Run Code Online (Sandbox Code Playgroud)