jjzjj

ItemDecoration

全部标签

android - 如何在 ItemDecoration 中绘制 View ?

我已经知道如何在ItemDecoration中绘制东西,但现在我想在ItemDecoration中绘制一个View。由于设置有点复杂,我创建了一个sampleproject可以重现问题。我想要实现的目标我有一个包含20个项目的RecyclerView,只显示数字。我想在第5项上方添加一个带有文本“ThisisNumber5”的黑色标题。当然,这是我的真实问题的简化版本,在我的真实问题中我必须通过ItemDecoration来完成,所以请不要给出不使用ItemDecoration的替代方案。问题如下图所示,装饰尺寸正确,可以绘制xml的第一层(有android:background="@

android - 圆角ItemDecoration

我有一个带有GridLayoutManager的RecyclerView,其中包含具有各种ViewTypes(以及SpanSize)的项目.我需要为所有R.layout.item_image类型圆角,如下图所示所以我创建了一个ItemDecoration来计算将在其上绘制这些项目的Rect。然后将Canvas剪切到此Rect(使用Path来圆角):publicclassRoundCornersDecorationextendsRecyclerView.ItemDecoration{privatefinalfloatradius;privatefinalRectFdefaultRectT

android - ItemDecoration 覆盖 getItemOffsets() 和动画

我通过覆盖getItemOffsets()方法(请参阅下面的代码)使用GridLayoutManager为我的RecyclerView应用相等的边距。但是,当一个对象从适配器中移除时,移除动画会在没有偏移的情况下被调用。因此,动画开始于与要移除的对象不同的位置。我试图通过getSpanIndex(position)获取位置,但位置(parent.getChildAdapterPosition(view))返回NO_POSITION,因为当调用getItemOffsets()时,对象已经从适配器中移除。在我的案例中有什么方法可以获得偏移量吗?@OverridepublicvoidgetI

android - 从 RecyclerView.Adapter 中删除项目后,RecyclerView.ItemDecoration 不会更新

我的问题我怎样才能得到我的ItemDecoration当我从我的适配器中删除给定View然后调用notifyItemRemoved()时,“更新”其他View的项目偏移量?在我的特殊情况下,我有一个ItemDecoration为每个项目提供少量的顶部偏移量,并为最后一个项目提供大量的底部偏移量。当我删除最后一项时,成为新的最后一项的View没有任何底部偏移。之前和之后:如果我随后滚动列表,当我返回到列表底部时,我的"new"最后一项具有正确的偏移量。只要“新的”最后一项在屏幕上保持可见,这只是一个问题。我尝试过的如果我改变我的notifyItemRemoved()调用notifyDat

android - 当 RecyclerView 元素为其高度设置动画时,如何正确绘制 ItemDecoration?

我有一个使用LinearLayoutManager(垂直)的RecyclerView。我想要完成的是让项目装饰(全宽和1像素高)分隔线在View移动时(translationY()正确处理)和View更改其高度时与View一起动画。在我下面的当前代码中,分隔线将跳转到View底部的future位置,而不是动画期间的当前底部。有什么方法可以解释动画期间项目装饰的高度变化,使动画看起来更好吗?我通过在RecyclerView的适配器上使用notifyItemChanged()来更改View高度。publicclassDividerItemDecorationextendsRecyclerV

java - 使用 RecyclerView GridLayoutManager 通过 ItemDecoration 制作列间距时 Item 宽度不一样

我正在尝试使用RecyclerView和GridLayoutManager来制作3列网格,我现在使用ItemDecoration来制作列间距问题是第三列中项目的宽度小于第一列和第二列中的项目!请参阅下面的屏幕截图。如果我不将自定义的ItemDecoration添加到RecyclerView,一切正常。这是我的代码:MainActivity.java:publicclassMainActivityextendsAppCompatActivity{privateRecyclerViewmRecyclerView;privateMyAdaptermAdapter;@Overrideprote

java - 使用 RecyclerView GridLayoutManager 通过 ItemDecoration 制作列间距时 Item 宽度不一样

我正在尝试使用RecyclerView和GridLayoutManager来制作3列网格,我现在使用ItemDecoration来制作列间距问题是第三列中项目的宽度小于第一列和第二列中的项目!请参阅下面的屏幕截图。如果我不将自定义的ItemDecoration添加到RecyclerView,一切正常。这是我的代码:MainActivity.java:publicclassMainActivityextendsAppCompatActivity{privateRecyclerViewmRecyclerView;privateMyAdaptermAdapter;@Overrideprote

android - RecyclerView.itemDecoration onDraw c.drawLine 与 Lollipop 之前的设备不兼容?

我正在尝试创建我自己的扩展到RecyclerView的CustomDivider类。ItemDecoration基于Google的示例,其中有一个分隔线。幸运的是,我试过的代码可以运行,但我只在运行于Lollipop的模拟器中尝试过,我发现它在我的Kitkat设备上不起作用。这是模拟器和结果的屏幕截图。这是我运行Kitkat的AsusZenfone4的屏幕截图。这是我的代码:publicclassCustomDividerextendsRecyclerView.ItemDecoration{publicstaticfinalintLINEAR_HORIZONTAL_LIST=Linea

android - 是否可以隐藏 RecyclerView 中最后一项的 ItemDecoration?

我正在使用RecyclerView.ItemDecoration类在列表中创建分隔线,但我想隐藏列表中最后一项的分隔线。这是否可能无需自己实现分隔线? 最佳答案 你可以试试这个,publicclassSimpleDividerItemDecorationextendsRecyclerView.ItemDecoration{privateDrawablemDivider;publicSimpleDividerItemDecoration(Contextcontext){mDivider=ContextCompat.getDrawabl

android - 如何将左侧和右侧的 ItemDecoration 都应用于 RecyclerView 项目?

长期以来,我一直在努力实现这一目标。我想要的是将选定的RecyclerView项从左到右重叠,如下图所示。我可以通过ItemDecoration实现向左或向右的效果,如下所示:classOverlapDecoration(privatevaloverlapWidth:Int):RecyclerView.ItemDecoration(){privatevaloverLapValue=-40valTAG=OverlapDecoration::class.java.simpleNameoverridefungetItemOffsets(outRect:Rect,view:View,paren
12