Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android,在RecyclerView的每个项目下显示一个阴影(无边距填充)_Android_Android Recyclerview_Shadow_Android Flexboxlayout - Fatal编程技术网

Android,在RecyclerView的每个项目下显示一个阴影(无边距填充)

Android,在RecyclerView的每个项目下显示一个阴影(无边距填充),android,android-recyclerview,shadow,android-flexboxlayout,Android,Android Recyclerview,Shadow,Android Flexboxlayout,我试图在RecyclerView的项目下显示一个阴影,但项目之间没有空间 我试图复制这样的东西: 我已经实现了一个RecyclerView和一个FlexboxLayout,所以项目在屏幕上占据了整个位置 以下是回收者视图声明: <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layou

我试图在RecyclerView的项目下显示一个阴影,但项目之间没有空间

我试图复制这样的东西:

我已经实现了一个RecyclerView和一个FlexboxLayout,所以项目在屏幕上占据了整个位置

以下是回收者视图声明:

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:listitem="@layout/category_item"
    android:clipToPadding="false"
    android:paddingEnd="20dp"
    android:paddingBottom="20dp"/>
以下是我得到的:

如您所见,我添加了一个填充,以便我们可以看到后面的阴影,但由于项目之间没有空间,因此阴影不会显示。 我希望阴影显示在其他项目的顶部


我不知道如何在项目之间进行美观的分隔,否则,我尝试了使用
DividerItemDecoration
,但效果并不理想。

您可以尝试使用适配器的自定义布局。在底部的自定义布局中,可以设置边框或阴影。它会对你有用。

我在这里找到了一个解决方案:

我创建了一个渐变资源:

<shape xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:angle="90"
        android:centerColor="@color/c1"
        android:centerY="90%"
        android:endColor="@color/c1_darker"
        android:startColor="@color/c1"
        android:type="linear" />

</shape>


我将它设置为我的物品的背景,这样我的物品顶部会更暗,看起来像是上面物品的阴影。

我试过了,但没有得到想要的效果,我在底部有一条更暗的线,但没有褪色效果,所以看起来不像阴影
@Override
public void onBindViewHolder(final CategoryViewHolder holder, int position) {
    if (categories != null) {
        Category category = categories.get(position);
        holder.itemTitle.setText("Lorem ipsum");
        ViewGroup.LayoutParams lp = holder.itemContainer.getLayoutParams();

        holder.itemContainer.setBackgroundResource(category.getColor());

        if (lp instanceof FlexboxLayoutManager.LayoutParams) {
            FlexboxLayoutManager.LayoutParams flexboxLp =
                    (FlexboxLayoutManager.LayoutParams) holder.itemContainer.getLayoutParams();
            flexboxLp.setFlexGrow(1.0f);
        }
    }
}
<shape xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:angle="90"
        android:centerColor="@color/c1"
        android:centerY="90%"
        android:endColor="@color/c1_darker"
        android:startColor="@color/c1"
        android:type="linear" />

</shape>