web-dev-qa-db-de.com

Bildlaufleiste wird in RecyclerView nicht angezeigt

Ich habe eine RecyclerView und hätte gerne eine Bildlaufleiste, wenn sie mehr als eine Seite umfasst.

Ich bekomme überhaupt keine Scrollbar. Irgendeine Idee?

Mein Layout:

<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>
33
Michael Schmidt

Die Lösung besteht darin, die vertikale (oder horizontale) Bildlaufleiste im XML-Layout festzulegen:

<Android.support.v7.widget.RecyclerView
      Android:layout_width="match_parent"
      Android:layout_height="match_parent"
      Android:scrollbars="vertical" />
32
jujux789

Verwenden Sie Android: Scrollbars-Attribut "vertical" und Android: ScrollbarThumbVertical-Attribut, um die Farbe festzulegen, und das Android: ScrollbarSize-Attribut, um die Größe anzugeben:

<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" />
18
Mandeep Yadav

verwenden Sie recyclerView wie folgt im XML-Layout 

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

und fügen Sie den Code für den Scrollview in Java hinzu

 RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
 recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
 recyclerView.setHasFixedSize(true);
8
Soe Naing Tun

Sie können verwenden von:

setScrollbarFadingEnabled(boolean)

Scrollbar-Link

4
user4501847

Ich hatte das gleiche Problem nur auf meinem alten HTC Desire X (API 16).
Ich weiß nicht warum, aber Scollbars von RecyclerView funktionieren auf diesem Gerät nicht ordnungsgemäß, wenn die Android:background-Eigenschaft nicht festgelegt ist. Versuchen Sie es auf eine beliebige Farbe oder auf transparent einzustellen - es funktioniert für mich, hoffe es hilft Ihnen auch

2
smbd uknow

Versuche dies:

mLayoutManager = new LinearLayoutManager (this);  
mLayoutManager.setSmoothScrollbarEnabled (true);
2
mio4kon

Mit xmlAndroid:fadeScrollbars="false"

Verwenden von JavaScrollView.setScrollbarFadingEnabled(false);

0
tk_

Scroller kann auf verschiedene Arten für das Recyvern von Informationen eingestellt werden. 1. Sie können einfach eine Bildlaufleiste in xml hinzufügen und die Eigenschaft Android festlegen: fadeScrollbars = "false", um sie immer anzuzeigen. 

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

Oder Sie können ein Style-Theme erstellen und es programmgesteuert verwenden, wenn Sie das Recyverview initialisieren

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

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

vielen Dank

0
justchill

Wenn Sie ScrollBar programmatisch einstellen können, können Sie ContextThemeWrapper verwenden. Zuerst müssen Sie das Styling in der Datei Style.xml definieren:

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

Wenden Sie das Styling dann an, wenn Sie Ihr RecylerView initialisieren:

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

Neben dem Attribut Android: scrollbars sollten Sie das Attribut Android: fadeScrollbars im Status "false" wie folgt hinzufügen:

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

Auf diese Weise wird die vertikale Bildlaufleiste immer angezeigt, wenn die zulässige Höhe des Layouts höher ist.

0
Dan Ponce

Fügen Sie den Code zur Recycler-Ansichts-XML hinzu, um die Bildlaufleiste sichtbar zu machen.

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

Eigentlich liegt es am Thema. Die Bildlaufleisten sind vorhanden, können jedoch nicht angezeigt werden, da sie mit der Farbe der übergeordneten Ansicht oder einer anderen Ansicht in der Linie der Vorfahren zusammenpassen.

Sie können eine gezeichnete Form erstellen, ihr die gewünschte Farbe zuweisen und diese als vertikale oder horizontale Bildlaufleiste festlegen. Das heißt, wenn Sie nicht mit den Farben Ihres Themas herumspielen möchten.

0
TheRealChx101