RecyclerView weird cell bloating behavior

I have this layout in two applications, one inside the RecyclerView, and the other in the layout with root privileges.

Here's the layout:

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:orientation="vertical" android:layout_marginTop="4dp" android:layout_marginBottom="4dp" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:background="#CFCFCF" android:minHeight="250dp"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/holo_red_dark" > <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/holo_blue_bright" android:layout_above="@+id/commerceTextView" > <ImageView android:src="@drawable/imagen" android:id="@+id/commerceImageView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center"/> </FrameLayout> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/commerceTextView" android:gravity="center" android:textStyle="bold" android:textSize="24sp" android:textColor="#F1F1F1" android:background="@color/colorPrimary" android:layout_alignParentBottom="true" android:paddingTop="10dp" android:text="Best food ever" android:paddingBottom="10dp"/> </RelativeLayout> </FrameLayout> 

Here is the adapter

 public class CommercesAdapter extends RecyclerView.Adapter<CommercesAdapter.CommercesViewHolder> { private final Context context; private final ImageLoader loader; private List<CommerceEntity> commercesList; @Inject public CommercesAdapter(Context context, ImageLoader loader) { this.context = context; this.loader = loader; } public void setData(List<CommerceEntity> commercesList) { this.commercesList = commercesList; } @Override public CommercesViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context) .inflate(R.layout.list_comerces_item, parent, false); return new CommercesViewHolder(view); } @Override public void onBindViewHolder(CommercesViewHolder holder, int position) { CommerceEntity commerce = commercesList.get(position); String imageUri = commerce.getImageUri(); String name = commerce.getName(); // holder.commerceTypeName.setText(name); //loader.bind(holder.commerceImage, imageUri); } @Override public int getItemCount() { return commercesList.size(); } public static class CommercesViewHolder extends RecyclerView.ViewHolder { public ImageView commerceImage; public TextView commerceTypeName; public CommercesViewHolder(View itemView) { super(itemView); commerceImage = (ImageView) itemView.findViewById(R.id.commerceImageView); commerceTypeName = (TextView) itemView.findViewById(R.id.commerceTextView); } } 

Here is the RecyclerView enter image description here

And here in the layout of the root image

enter image description here

Does anyone know why this is happening? if I add android: centerInParent "true" for the nested FrameLayout, an image will appear, but I don't understand why.

+5
source share
1 answer

In your adapter, uncomment the two lines that you commented on;

`//holder.commerceTypeName.setText(name);

  //loader.bind(holder.commerceImage, imageUri); 

`

0
source

Source: https://habr.com/ru/post/1235877/


All Articles