【问题标题】:ListView in android adds padding to headers same size as dividerHeightandroid中的ListView向与dividerHeight相同大小的标题添加填充
【发布时间】:2016-03-24 12:28:06
【问题描述】:

我在 Android 中有一个简单的 ListView,其中包含项目、headerView 和 footerView。 headerView 和 footerView 以编程方式添加到 ListView。

ListView 的 xml 如下所示:

<ListView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:dividerHeight="8dp"
    android:divider="@color/gray"
    android:footerDividersEnabled="false"
    android:headerDividersEnabled="false" />

这在每个列表项之间提供了一个 8dp 的灰色分隔线,这正是我想要的。问题是它还在 headerView 和第一个 listitem 之间添加了一个与主题背景颜色相同的填充(在我的情况下为白色),填充也与 dividerHeight (8dp) 的高度相同。

我虽然属性 headerDividersEnabled="true" 会处理这个,从参考:

android:headerDividersEnabled

当设置为 false 时,ListView 将不会在每个之后绘制分隔线 标题视图。默认值为 true。

如果我设置了 headerDividersEnabled="true",则在 listitem 和 headerView 之间绘制一个灰色的 8dp 分隔线,正如预期的那样。

【问题讨论】:

    标签: android listview header divider


    【解决方案1】:

    从我从你的问题中得到的是你试图隐藏项目之间的灰线,如果是这样试试这个。

    要去除同一个ListView中项目之间的分隔符,解决方法如下:

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

    developer.android.com #ListView

    或者,如果你想用 XML 来做:

    android:divider="@null" android:dividerHeight="0dp"

    【讨论】:

    • 其实不是,我想要项目之间的分隔线,而不是项目和标题之间的分隔线。 headerDividersEnabled="false" 应该可以解决问题,实际上,项目和标题之间没有显示分隔线,而是在项目和标题之间添加了与 dividerHeight 相同高度的填充。
    【解决方案2】:

    在 ListView 中添加这个

    android:clipToPadding="false"
    

    ListView 将在其子项进入填充区域后立即对其进行回收。属性clipToPadding 只影响绘图

    【讨论】:

    • clipToPadding 似乎只影响列表视图本身的填充,而不影响列表项和标题视图之间的填充。在我的情况下,添加 clipToPadding="false" 没有任何效果。
    猜你喜欢
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 2015-12-06
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 2014-01-19
    相关资源
    最近更新 更多