【问题标题】:Huge distance between listview items列表视图项目之间的巨大距离
【发布时间】:2016-05-06 09:56:00
【问题描述】:

我有一个权重总和为 4 的列表视图。包含图像后,我有很大的填充,但我清除了所有边距和填充。通过适配器从 MainActivity 接收的所有数据。 下面有屏幕截图和代码。感谢观看和帮助。

    <TextView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Пн, сегодня"
        android:id="@+id/title"
        android:layout_weight="1"
        android:layout_gravity="center_vertical"
        android:gravity="center" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:id="@+id/icon"
        android:layout_weight="1"
        android:src="@drawable/ic_cloud_queue_24dp"
        android:layout_gravity="center_vertical" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="+17"
        android:id="@+id/genre"
        android:layout_weight="1"
        android:gravity="center"
        android:layout_gravity="center_vertical" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="+9"
        android:id="@+id/year"
        android:layout_weight="1"
        android:gravity="center"
        android:layout_gravity="center_vertical" />

</LinearLayout>

【问题讨论】:

  • 发布完整的 XML 代码。还发布 XML 包含List View
  • 检查我的答案并使用此代码。如果您遇到问题,请告诉我。并确保您在上述问题中发布您的代码。

标签: android android-recyclerview space items


【解决方案1】:

尝试使用此代码。

我所做的更改添加到 Relative Layout 内的 Linear Layoutmatch_parent 作为高度和宽度。因为线性布局子元素包含match_parent 作为高度,所以会影响列表项。这就是为什么我添加了新的根布局并将所有孩子定义为 OP。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/ll1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="4">

        <TextView
            android:id="@+id/title"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:gravity="center"
            android:text="Пн, сегодня"
            android:textAppearance="?android:attr/textAppearanceSmall" />

        <ImageView
            android:id="@+id/icon"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:src="@drawable/ic_dashboard" />

        <TextView
            android:id="@+id/genre"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:gravity="center"
            android:text="+17"
            android:textAppearance="?android:attr/textAppearanceSmall" />

        <TextView
            android:id="@+id/year"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:gravity="center"
            android:text="+9"
            android:textAppearance="?android:attr/textAppearanceSmall" />

    </LinearLayout>

</RelativeLayout>

【讨论】:

  • 是的,它有效,谢谢。这是我上面的代码,但我不能插入其中的一部分。
  • @Downvoter 为Down Vote 拍摄你的理由?他的问题已经解决了!!
  • @jaydroider。尽管此解决方案可能有效,但尝试此代码-答案通常不是很好的答案。它可能会帮助提问者解决他的具体问题,但它不会教给提问者任何东西。好的答案还可以解释为什么提问者的方法不起作用,并解释为什么提出的解决方案有效
  • @IvoBeckers 这并不意味着你Down Vote 的答案并让答案质量低,这足以让提问者解决他的问题。
  • @jaydroider,我不同意你的看法。这个网站不是要给出“足够好”的答案,也不仅仅是为了帮助提问者。这是为了帮助整个社区并教人们如何以及为什么工作。这个问题的未来访问者可能想知道它为什么有效。请不要感到被冒犯,这不是人身攻击。你总是可以改进你的答案,然后我可能会支持它
【解决方案2】:

LinearLayout 四个元素的高度为wrap_content,这基本上意味着将其设置为孩子的高度。但是所有 4 个孩子的身高都为match_parent,这表明正好适合我的父母。所以这不是很兼容。我要做的要么是给所有 4 个孩子的高度 wrap_content,或者更好的是给 LinearLayout 一个固定的 layout_height

【讨论】: