【问题标题】:Top-most and Bottom-most Horizontal Divider does not show up in ListViewListView 中不显示最顶部和最底部的水平分隔线
【发布时间】:2019-12-16 20:08:14
【问题描述】:

我正在使用 ListView。但是最顶部和最底部的水平条没有显示。为什么?我正在使用这个:

android:divider="@android:drawable/divider_horizontal_bright"

【问题讨论】:

  • 你找到解决这个问题的好方法了吗? android:footerDividersEnabled 对我不起作用。
  • 嗯,抱歉从未尝试过 :(

标签: android android-widget


【解决方案1】:

添加虚拟页脚和页眉

listViewContato = (ListView) view.findViewById(R.id.listview_contatos);
listViewContato.addHeaderView(new View(getActivity()));
listViewContato.addFooterView(new View(getActivity()));

【讨论】:

  • 这需要更多的爱,它有效!前面在 Roman Nurik 的评论线程中提到的页脚,可以立即使用,但页眉确实需要页眉。
【解决方案2】:

这是我如何实现它... 为ListView 设置android:paddingBottom 后,底部分隔线出现。但在我的情况下,设置android:paddingTop 顶部和底部分隔符后没有显示。我不知道为什么。 所以我在我的list_item_layout.xml 中添加了以下代码:

<View
    android:layout_width="match_parent"
    android:layout_height="1dip"
    android:background="?android:attr/listDivider" />

在我的适配器中,我只是改变了这个视图的可见性:

View topDivider = v.findViewById(R.id.divider);

if (position == 0) {
    topDivider.setVisibility(View.VISIBLE);
} else {
    topDivider.setVisibility(View.GONE);
}

希望这对某人有所帮助。

【讨论】:

    【解决方案3】:

    您是否考虑过在ListView 上设置android:headerDividersEnabledandroid:footerDividersEnabled

    另外,如果您在platform/frameworks/base/+/master/core/java/android/widger/ListView.java 中寻找drawDividerAndroid open source repository 中,您将能够找到更多线索。

    【讨论】:

    • 在一个小部件中,它出现 android:footerDividersEnabled 和 android:headerDividersEnabled 什么都不做。仍在寻找其他解决方案。
    • 我的列表视图中有三个标题,第三个标题应该在运行时显示/隐藏。有没有办法删除第三个标题的分隔线高度(即设置为 0)或任何解决方法?
    【解决方案4】:

    LibSlideMenu 也有同样的问题。

    由于android:headerDividersEnabled 设置为true 没有在滑动菜单中显示标题分隔符,我通过将slidemenu.xml(不是slidemenu_listitem.xml)更改为

    来解决它
    <LinearLayout ...>
    
        <LinearLayout ...>
        <ImageView ...>  (this is the header image on top of the menu)
    
        <View
        android:layout_width="250dip"
        android:layout_height="2dip"
        android:background="@drawable/divider" />
    
        <ListView ...> (this is the ListView for the MenuItems)
        </LinearLayout>
    
    
        <FrameLayout ...>
        </FrameLayout ...>
    </LinearLayout>
    

    这将手动添加分隔线。

    【讨论】:

      【解决方案5】:

      首先,您必须在 XML 中启用 footerDividers:

      android:footerDividersEnabled="true"
      

      然后像这样简单地添加一个虚拟页脚视图

      listview.addFooterView(new View(this), null, false);
      

      你可以对标题做同样的事情

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-25
        • 2021-11-23
        • 1970-01-01
        相关资源
        最近更新 更多