web-dev-qa-db-ja.com

スクロールバーが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>
36
Michael Schmidt

解決策は、xmlレイアウトで垂直(または水平)スクロールバーを設定することです。

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

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

xMLレイアウトで次のようにrecyclerViewを使用します

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

javaのscrollviewのコードを以下に追加します。大丈夫です

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

以下から使用できます。

setScrollbarFadingEnabled(boolean)

スクロールバーリンク

4
user4501847

古いHTC Desire X(api 16)のみで同じ問題が発生しました。
理由はわかりませんが、RecyclerViewのスコールバーは、Android:backgroundプロパティが設定されていません。任意の色または透明に設定してみてください-それは私のために働く、それもあなたに役立つことを願っています

2
smbd uknow

これを試して:

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

Android:scrollbars属性に加えて、次のようにAndroid:fadeScrollbars属性をfalse状態で追加する必要があります。

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

このようにして、許可されるレイアウトの高さをより多く使用している場合、垂直スクロールバーが常に表示されます。

1
Dan Ponce

xml _Android:fadeScrollbars="false"_を使用

JavaScrollView.setScrollbarFadingEnabled(false);を使用

0
tk_

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

または、recyclerviewを初期化するときにスタイルテーマを作成し、プログラムで使用できます。

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

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

ありがとう

0
Mudassir Khan

プログラムでScrollBarを設定しても問題ない場合は、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
Ayaz Alifov

コードをリサイクルビュー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"/>

実際、それはテーマのためです。スクロールバーはありますが、親ビューまたはその祖先の行のその他のビューの色とブレンドされるため、表示できません。

描画可能なシェイプを作成し、希望する色を指定して、垂直または水平スクロールバーの描画可能として設定できます。つまり、テーマの色をいじりたくない場合です。

0
TheRealChx101