27

У меня есть 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> 
+0

Это выглядит правильно. Вы уверены, что нет проблем с тематикой или чем-либо, что делает полосы прокрутки одинаковыми с фоном? Есть ли образец проекта, на который мы можем смотреть? – yigit

+0

@Michael Schmidt Это должно работать, просто не забудьте всегда использовать 'android: scrollbars =" vertical "', когда вы хотите отобразить 'scrollbar' с' recyclerview' –

+0

Возможно, вам нужно добавить 'android: scrollbarStyle =" outsideOverlay "' к вашему 'RecyclerView'. – Sufian

ответ

2

Попробуйте это:

mLayoutManager = new LinearLayoutManager (this); 
mLayoutManager.setSmoothScrollbarEnabled (true); 
28

Решение установить вертикальную (или горизонтальную) полосу прокрутки в макете XML:

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

Разве это не так, как в вопросе? – Pang

+4

-1 как @Pang уже указал, у OP уже есть «андроид: полосы прокрутки» в его коде. У меня также есть это в моем коде, по-прежнему нет полосы прокрутки ... –

3

Вы можете использование от:

setScrollbarFadingEnabled(boolean) 

Scrollbar Link

+0

Хороший совет, спасибо за обмен :) –

7

использование recyclerView, как показано ниже в XML-макете

<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" /> 

и добавить ниже код для Scrollview в Java, это будет хорошо

RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView); 
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false)); 
recyclerView.setHasFixedSize(true); 
+0

setHasFixSize предназначен для исправления кучи данных. – David

1

У меня была та же проблема, на мой старый HTC Desire X (api 16).
Я не знаю почему, но scollbars RecyclerView не работает должным образом на этом устройстве, если свойство android:background не установлено. Попробуйте установить его на любой цвет или на прозрачный - он работает для меня, надеюсь, он вам тоже поможет

0

Если вы настроены программно, то вы можете использовать программный код ContextThemeWrapper. Прежде всего, необходимо определить стиль в Style.xml файле:

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

А затем применить стиль, когда вы инициализации RecylerView:

RecyclerView recyclerView = new RecyclerView(new ContextThemeWrapper(context, R.style.ScrollbarRecyclerView)); 
0

Кроме андроида: атрибут скроллбары, вы должны добавить андроида: атрибут fadeScrollbars в ложном состоянии, как это:

<android.support.v7.widget.RecyclerView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scrollbars="vertical" 
    android:fadeScrollbars="false"/> 

Таким образом, вертикальная полоса прокрутки всегда показывает, когда он использует больше высоты расположения разрешенной.

12

Использование Android: скроллбары атрибут «вертикали» и андроида: атрибут scrollbarThumbVertical, чтобы установить цвет и андроида: scrollbarSize приписывать specifiy размер:

<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" /> 
+0

и это правильный ответ! Tnx! – Borg8

0

Добавьте код для Recycler просмотра XML, чтобы сделать полосу прокрутки видимым.

<android.support.v7.widget.RecyclerView 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fadeScrollbars="false" 
android:scrollbars="vertical" 
android:scrollbarSize="@dimen/_2sdp" 
android:scrollbarThumbVertical="@color/white"/> 
-1

просто нужно поставить RecyclerView в ScrollView, как это:

<ScrollView 
    android:id="@+id/scroll" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 

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

</ScrollView> 
+0

вы не должны так поступать! – Mahfa

Смежные вопросы