我有一个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 :(得分:33)
解决方案是在xml布局中设置垂直(或水平)滚动条:
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical" />
答案 1 :(得分:17)
使用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" />
答案 2 :(得分: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" />
并在java中为scrollview添加以下代码,没关系
RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
recyclerView.setHasFixedSize(true);
答案 3 :(得分:4)
答案 4 :(得分:2)
试试这个:
mLayoutManager = new LinearLayoutManager (this);
mLayoutManager.setSmoothScrollbarEnabled (true);
答案 5 :(得分:2)
我在旧的HTC Desire X(api 16)上遇到了同样的问题
我不知道为什么,但如果未设置RecyclerView
属性,android:background
的scollbars在此设备上无法正常工作。尝试将其设置为任何颜色或透明 - 它适用于我,希望它也可以帮助你
答案 6 :(得分:1)
除了android:scrollbars属性,你应该在false状态下添加android:fadeScrollbars属性,如下所示:
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:fadeScrollbars="false"/>
这样,当垂直滚动条使用更多的布局高度时,它总是会显示。
答案 7 :(得分:0)
如果您可以通过编程方式设置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));
答案 8 :(得分: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"/>
答案 9 :(得分:0)
可以通过多种方式将滚动条设置为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));
谢谢
答案 10 :(得分:0)
实际上,是因为主题。滚动条在那里,但无法看到,因为它们与父视图或祖先行中的其他视图上的颜色融合在一起。
您可以创建一个可绘制的形状并为其指定所需的颜色,然后将其设置为垂直或水平滚动条的可绘制形状。也就是说,如果您不想弄乱主题颜色。
答案 11 :(得分:0)
使用 xml onClickSeat
使用 java android:fadeScrollbars="false"