【问题标题】:Android. Hide certain listview separator安卓。隐藏某些列表视图分隔符
【发布时间】:2011-09-19 20:29:59
【问题描述】:

如何隐藏或删除某些列表视图分隔符?当然我可以隐藏所有的分隔线

getListView().setDivider( null ); 
getListView().setDividerHeight(0); 

但我需要在列表视图中隐藏一两个分隔线。例如按位置。我正在为列表数据使用自定义适配器。 谢谢。

【问题讨论】:

    标签: android listview hide separator divider


    【解决方案1】:

    您可以隐藏列表视图中禁用项目的水平分隔线(通常用作部分标题)。为此,在 areAllItemsEnabled BaseAdapter 回调中返回 false。同样,这仅适用于那些被禁用的视图(您在 isEnabled 回调中为该项目返回 false)。这个回调的文档有点模糊:

    指示是否启用此适配器中的所有项目。如果 此方法返回的值随时间变化,无法保证 它将生效。如果为真,则表示所有项目都是可选的,并且 可点击(没有分隔符。)

    Reference.

    请注意,它提到了分隔符。我不确定这是预期的行为还是某种副作用。但它有效。您可以在 ApiDemos 列表演示 5(分隔符)中看到这一点。

    【讨论】:

    • 感谢这个答案拯救了我的一天。重写 BaseAdapter areAllItemsEnabled 并返回 false 做了 tirck
    【解决方案2】:

    您可以为每个 ListItem 创建一个自定义视图,您可以在其中打开或关闭分隔符,也可以创建一个分隔符视图,并将其添加到列表视图中的适当位置。

    【讨论】:

    • 我有一个列表项的自定义布局。但我不知道如何在每个项目上添加或删除分隔线。我想对于所有列表视图来说,分隔符是很常见的。
    • 所以只需在布局的顶部或底部添加一个分隔视图,并将其设置为可见或不可见
    • slayton,对不起,但不要理解你。你说我可以在我的列表项中添加一个分隔符,但是这个分隔符是什么?文本视图、图像视图等?在 listview 属性中有分隔符属性 - 所有列表都通用。如何为每个项目设置此属性?也许您的意思是禁用上面我的代码中提到的“本机”分隔符,并将分隔符模拟为我的列表项视图中的附加视图?对吗?
    • @Georgy gobozov。 “也许你的意思是禁用上面我的代码中提到的“本机”分隔符,并在我的列表项视图中将分隔符模拟为附加视图?对吗?“是的这个
    • 我从来没有想过这么简单的解决方案...(手动自定义分隔线)感谢您为我考虑!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多