【问题标题】:Each card in the card view has different width卡片视图中的每张卡片都有不同的宽度
【发布时间】:2019-01-25 22:24:37
【问题描述】:

我正在使用 AndroidStudio 3.2.1 和 Java。我有一个RecyclerView,其中项目使用CardView 显示。我的代码工作正常。但是,每张卡片根据其内容具有不同的宽度。我需要的是所有卡片的宽度都与父宽度相同。我认为这是一个布局问题。我希望有人知道如何解决这个问题。谢谢你。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="8dp">

            <ImageView
                android:id="@+id/imageView"
                android:layout_width="120dp"
                android:layout_height="90dp"
                android:padding="4dp" />

            <TextView
                android:id="@+id/textViewTitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_toRightOf="@id/imageView"
                android:text="Apple MacBook Air Core i5 5th Gen - (8 GB/128 GB SSD/Mac OS Sierra)"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                android:textColor="#000000" />

            <TextView
                android:id="@+id/textViewShortDesc"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/textViewTitle"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="5dp"
                android:layout_toRightOf="@id/imageView"
                android:text="13.3 Inch, 256 GB"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Small" />

            <TextView
                android:id="@+id/textViewRating"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/textViewShortDesc"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="5dp"
                android:layout_toRightOf="@id/imageView"
                android:background="@color/colorPrimary"
                android:paddingLeft="15dp"
                android:paddingRight="15dp"
                android:text="4.7"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Small.Inverse"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/textViewPrice"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/textViewRating"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="5dp"
                android:layout_toRightOf="@id/imageView"
                android:text="INR 56990"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Large"
                android:textStyle="bold" />

        </RelativeLayout>

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

</LinearLayout>

覆盖父宽度的每张卡片的预期宽度相等。然而,实际结果是每张卡片根据其内容具有不同的宽度

【问题讨论】:

    标签: android android-recyclerview android-cardview


    【解决方案1】:

    只需更改您的 TextViews 属性以匹配父级。如果这不起作用,请将您的亲戚放入 LinearLayout 或将您的相对更改为 LinearLayout,并将方向设置为垂直

    android:layout_width="match_parent"
    

    您可能还需要添加它。

    app:cardUseCompatPadding="true"
    

    【讨论】:

    • 只需将组件的宽度更改为 Match Parent 就可以了。谢谢。
    猜你喜欢
    • 2018-05-12
    • 2020-06-11
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 2015-12-20
    相关资源
    最近更新 更多