Android recyclerview删除所有项目装饰器

Iva*_*sin 7 android android-recyclerview

我这样做了:

dividerItemDecoration = new DividerItemDecoration(
        recyclerView.getContext(),
        DividerItemDecoration.VERTICAL
    );
recyclerView.addItemDecoration(dividerItemDecoration);
Run Code Online (Sandbox Code Playgroud)

然后我改变设备方向,所以现在我没有dividerItemDecoration,我想从recyclerView删除分隔符.可能吗?

Szy*_*ber 15

你可以这样做:

while (recyclerView.getItemDecorationCount() > 0) {
    recyclerView.removeItemDecorationAt(0);
}
Run Code Online (Sandbox Code Playgroud)

  • 扩展功能的好人选! (5认同)

小智 8

要删除ItemDecoration,您需要使用removeItemDecoration.对于您的情况,代码将是:

recyclerView.removeItemDecoration(dividerItemDecoration);
Run Code Online (Sandbox Code Playgroud)

  • 这里的dividerItemDecoration **是什么? (2认同)

j2e*_*nue 7

添加到 Szymon Chaber 答案这里是一个 kotlin 扩展,使其可重用:

fun <T : RecyclerView> T.removeItemDecorations() {
    while (itemDecorationCount > 0) {
        removeItemDecorationAt(0)
    }
}
Run Code Online (Sandbox Code Playgroud)