Android:在RecyclerView

时间:2015-10-08 19:37:29

标签: android android-recyclerview android-cardview

我正在使用带有CardViews的RecyclerView,我想要删除RecyclerView内部子卡之间留下的边距/填充/间距。我怎样才能做到这一点? 这是我的CardView:

    <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    card_view:cardUseCompatPadding="false">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="horizontal">

        <!--status lock-->
        <ImageView
            android:id="@+id/imageField"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_margin="20dp" />

        <!--text info section-->
        <LinearLayout
            android:id="@+id/textInfo"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="vertical">

            <!--NAME-->
            <TextView
                android:id="@+id/nameField"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="item name"
                android:gravity="center_vertical"
                android:textSize="@dimen/abc_text_size_large_material" />

            <!--category-->
            <TextView
                android:id="@+id/categoryField"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:lines="1"
                android:maxLines="1"
                android:text="category"
                android:textSize="@dimen/abc_text_size_small_material" />

            <!--working hours-->
            <LinearLayout
                android:id="@+id/workingHours"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:lines="1"
                android:maxLines="1"
                android:orientation="horizontal">

                <ImageView
                    android:id="@+id/workingHoursIcon"
                    android:layout_width="15dp"
                    android:layout_height="15dp"
                    android:layout_gravity="center_vertical"
                    android:background="@drawable/ic_clock"
                    android:padding="50dp"></ImageView>

                <TextView
                    android:id="@+id/WHStart"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingLeft="5dp" />

                <TextView
                    android:id="@+id/dash"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingLeft="5dp"
                    android:text=" - " />

                <TextView
                    android:id="@+id/WHEnd"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:lines="1"
                    android:maxLines="1"
                    android:paddingLeft="5dp" />

            </LinearLayout>

            <!--message-->
            <LinearLayout
                android:id="@+id/messageSection"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <ImageView
                    android:id="@+id/messageIcon"
                    android:layout_width="15dp"
                    android:layout_height="15dp"
                    android:layout_gravity="center_vertical"
                    android:background="@drawable/ic_message"
                    android:padding="50dp" />

                <TextView
                    android:id="@+id/message"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:lines="1"
                    android:maxLines="1"
                    android:paddingLeft="5dp"
                    android:text="No Message" />
            </LinearLayout>

        </LinearLayout>

        <!--add to favorite button-->
        <ImageButton
            android:id="@+id/btn_add_to_favorite_list"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="20dp"
            android:layout_marginLeft="48dp"
            android:layout_marginRight="20dp"
            android:layout_marginStart="48dp"
            android:background="@drawable/ic_star_gray" />

    </LinearLayout>
</android.support.v7.widget.CardView>

我的RecyclerView:

<android.support.v7.widget.RecyclerView
            android:id="@+id/my_recycler_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/my_store"
            android:scrollbars="vertical" />

以下是截图:

enter image description here

3 个答案:

答案 0 :(得分:1)

这可能就是您要找的CardView inside RecyclerView has extra margins

另外,如果你不想保留空格,你应该简单地使用LinearLayout为适配器布局完全删除CardView,应该这样做。

希望有所帮助。

答案 1 :(得分:0)

检查是否为边距或填充(开发选项/显示布局边界)

CardView在前L API级别添加填充以显示阴影。在L中,除非你设置useCompatPadding = true,否则应该没有任何差距。

添加负边距(虽然很难看)应该有用。

这可能有效

card_view:contentPaddingLeft="-3dp"
card_view:contentPaddingRight="-3dp"
card_view:contentPaddingTop="-3dp"
card_view:contentPaddingBottom="-3dp"

答案 2 :(得分:0)

试试这个:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<android.support.v7.widget.CardView
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardUseCompatPadding="false">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="horizontal">

    <!--status lock-->
    <ImageView
        android:id="@+id/imageField"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_margin="20dp" />

    <!--text info section-->
    <LinearLayout
        android:id="@+id/textInfo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical">

        <!--NAME-->
        <TextView
            android:id="@+id/nameField"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="item name"
            android:gravity="center_vertical"
            android:textSize="@dimen/abc_text_size_large_material" />

        <!--category-->
        <TextView
            android:id="@+id/categoryField"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lines="1"
            android:maxLines="1"
            android:text="category"
            android:textSize="@dimen/abc_text_size_small_material" />

        <!--working hours-->
        <LinearLayout
            android:id="@+id/workingHours"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lines="1"
            android:maxLines="1"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/workingHoursIcon"
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:layout_gravity="center_vertical"
                android:background="@drawable/ic_clock"
                android:padding="50dp"></ImageView>

            <TextView
                android:id="@+id/WHStart"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="5dp" />

            <TextView
                android:id="@+id/dash"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="5dp"
                android:text=" - " />

            <TextView
                android:id="@+id/WHEnd"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:lines="1"
                android:maxLines="1"
                android:paddingLeft="5dp" />

        </LinearLayout>

        <!--message-->
        <LinearLayout
            android:id="@+id/messageSection"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <ImageView
                android:id="@+id/messageIcon"
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:layout_gravity="center_vertical"
                android:background="@drawable/ic_message"
                android:padding="50dp" />

            <TextView
                android:id="@+id/message"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:lines="1"
                android:maxLines="1"
                android:paddingLeft="5dp"
                android:text="No Message" />
        </LinearLayout>

    </LinearLayout>

    <!--add to favorite button-->
    <ImageButton
        android:id="@+id/btn_add_to_favorite_list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="20dp"
        android:layout_marginLeft="48dp"
        android:layout_marginRight="20dp"
        android:layout_marginStart="48dp"
        android:background="@drawable/ic_star_gray" />

</LinearLayout>