【问题标题】:Android: remove divider of some listitems in listviewAndroid:删除列表视图中某些列表项的分隔符
【发布时间】:2013-03-20 19:39:57
【问题描述】:

我创建了一个带有BaseAdapter 的列表视图。我希望一些列表项有一个分隔线,但是从一些列表项中,我想删除分隔线。我知道您可以通过设置.setDivider(null).setDividerHeight(0) 来删除整个列表的分隔符,但是是否也可以从列表中的单个列表项中删除分隔符?

提前致谢!

【问题讨论】:

    标签: java android android-listview baseadapter divider


    【解决方案1】:

    您可以禁用整个列表的分隔符并为每个 ListItem 设置自定义视图,例如设置带或不带底部边框的不同背景可绘制对象。

    【讨论】:

    • 看起来开销很大,但恐怕这是唯一的方法:(
    • 如何处理可点击项目?如果分隔符是列表项的一部分,则单击选定区域时也会包含看起来很难看的分隔符。
    【解决方案2】:

    是的,您可以使用适配器中的 `getView` 方法从特定列表项中删除分隔符(它扩展了 baseadapter)

    你的适配器中有类似 data 的东西,它指的是显示到列表视图中的数据,所以在你的 getview 方法中检查如下特定项目:

    if(data[position].ID == YourElemetnsID)
    inflate with the specific list item layout
    else
    inflate with the general list item layout
    

    【讨论】: