为啥我的 Cardview 在我运行时没有出现在布局中
Posted
技术标签:
【中文标题】为啥我的 Cardview 在我运行时没有出现在布局中【英文标题】:Why my Cardview doesn't appear like in layout when i run it为什么我的 Cardview 在我运行时没有出现在布局中 【发布时间】:2020-11-07 17:22:46 【问题描述】:您好,我在我的应用程序中使用 Cardview 来表示项目,在代码布局下方,我在回收站视图中使用它,但它与布局不同。卡片视图完全是白色的,没有圆角半径,有人知道如何帮助我吗?
当我转到设计选项卡时它看起来很好,但是当我在设备上运行时它看起来不同。它没有圆角半径或颜色只有边距我该如何解决这个问题?
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layout_constraintCircleRadius="1dp"
android:id="@+id/cardview"
android:padding="16dp"
app:cardCornerRadius="32dp"
app:cardBackgroundColor="@color/pink"
app:cardElevation="5dp"
android:layout_margin="16dp">
<RelativeLayout
android:layout_
android:layout_
android:orientation="vertical">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/cardImage"
android:layout_
android:layout_
android:padding="8dp"
android:layout_centerHorizontal="true"
app:civ_border_color="#FF000000"
app:civ_border_/>
<TextView
android:id="@+id/cardName"
android:layout_
android:layout_
android:layout_below="@+id/cardImage"
android:layout_centerHorizontal="true"
android:textAlignment="center"
android:textColor="#673AB7"
android:textSize="17sp" />
<TextView
android:id="@+id/cardBodySize"
android:layout_
android:layout_
android:layout_below="@+id/cardName"
android:layout_centerHorizontal="true"
android:paddingBottom="8dp"
android:textAlignment="center"
android:textColor="#2C2C2C"
android:textSize="15sp" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
RecyclerView
public class ClothesRecycler extends RecyclerView.Adapter<ClothesViewHolder> implements Filterable
List<Clothes> data;
List<Clothes> filteredData;
private OnItemClickListener mListener;
private OnItemLongClickListener lListener;
public void setOnItemClickListener(OnItemClickListener listener)
mListener=listener;
public void setOnItemLongClickListener(OnItemLongClickListener listener)
lListener =listener;
public interface OnItemClickListener
void onItemClick(int position);
public interface OnItemLongClickListener
void onItemLongClick(int position);
public ClothesRecycler(List<Clothes> clothes)
data = clothes;
filteredData = clothes;
@NonNull
@Override
public ClothesViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.clothes_item_layout,parent,false);
return new ClothesViewHolder(view,mListener,lListener);
@Override
public void onBindViewHolder(@NonNull final ClothesViewHolder holder, int position)
final Clothes clothes= data.get(position);
holder.imageView.setImageBitmap(DataConverter.convertByteArray2Image(clothes.getImage()));
holder.name.setText(clothes.getName());
holder.bodySize.setText(clothes.getBodySize());
holder.itemView.setBackgroundColor(clothes.isSelected() ? Color.LTGRAY : Color.WHITE);
@Override
public int getItemCount()
return data.size();
【问题讨论】:
贴出RecyclerView.Adapter的代码 @GabrieleMariotti 我编辑帖子 适配器的代码不是RecyclerView的布局 @GabrieleMariotti 我已添加到代码中 图片是否覆盖了整个卡片视图? 【参考方案1】: 检查这个 xml 文件<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layout_constraintCircleRadius="1dp"
android:id="@+id/cardview"
android:padding="16dp"
app:cardCornerRadius="32dp"
app:cardBackgroundColor="@android:color/holo_purple"
app:cardElevation="5dp"
android:layout_margin="16dp">
<RelativeLayout
android:layout_
android:layout_
android:orientation="vertical">
<ImageView
android:id="@+id/cardImage"
android:layout_
android:layout_
android:padding="8dp"
android:background="@color/colorPrimaryDark"
android:layout_centerHorizontal="true"
/>
<TextView
android:id="@+id/cardName"
android:layout_
android:layout_
android:layout_below="@+id/cardImage"
android:layout_centerHorizontal="true"
android:textAlignment="center"
android:textColor="#673AB7"
android:textSize="17sp" />
<TextView
android:id="@+id/cardBodySize"
android:layout_
android:layout_
android:layout_below="@+id/cardName"
android:layout_centerHorizontal="true"
android:paddingBottom="8dp"
android:textAlignment="center"
android:textColor="#2C2C2C"
android:textSize="15sp" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
【讨论】:
我实际上在我的项目中尝试了完全相同的代码并且它显示正确,您是否在其他一些屏幕尺寸不同的设备上尝试过?以上是关于为啥我的 Cardview 在我运行时没有出现在布局中的主要内容,如果未能解决你的问题,请参考以下文章
为啥滚动时 RecyclerView (在我的情况下)中 CardView 的内容会发生变化?
当我将 ImageView 添加到 CardView 或 Fragment 时,为啥我的应用程序会崩溃?
为啥我的系统映像在运行时没有显示在我的应用程序中? [复制]
为啥我的图像出现在 Android Studio 设计视图中,但在手机中运行时却没有?