将滚动发光置于填充之外

时间:2017-03-13 22:08:33

标签: android android-layout android-recyclerview android-view android-scrollview

我有以下内容:

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

我添加这个以获得更清晰的UI:

    android:paddingEnd="16dp"
    android:paddingStart="16dp"

但是,现在滚动条位于填充内部,看起来很时髦。所以我补充说:

    android:scrollbarStyle="outsideInset"

滚动条现在位于填充之外,但是,滚动条仍然在填充内部。

如何让覆盖滚动的光线在填充处延伸?

编辑:

这里是遇到与上述相同问题的完整布局代码。

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>

3 个答案:

答案 0 :(得分:7)

您需要做的是将android:clipToPadding="false"应用于RecyclerView。考虑一下这个xml:

<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="40dp"
    android:paddingBottom="40dp"
    android:clipToPadding="false"/>

结果如下:

答案 1 :(得分:1)

您最好的选择是将填充放在RecyclerView的项目布局中,而不是放在RecyclerView本身。

但是,您可以使用边距,并且发光应保留在RecyclerView内。

答案 2 :(得分:0)

虽然@azizbekian给出的答案有效,但也可以通过编程方式设置clipToPadding

在Kotlin:recyclerView.clipToPadding = false

在java中:recyclerView.setClipToPadding(false)

我个人的青睐是扩展RecyclerView并在init函数(构造函数)中设置LayoutManagerclipToPadding等。