Gal Solomon
Gal Solomon

Reputation: 41

XML layout doesn't appear in R.layout

I am using the androidX CardView. In order to make a recyclerview adapter for the cards I need to inflate the custom card layout I have made. Unfortunately the xml of the custom card view doesn't appear in R.layout.(xml_name),while i find normally all the other layouts.

This the code inside the adapter class where I need to inflate:

public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    View view;
    LayoutInflater mInflater = LayoutInflater.from(mContext);
    view = mInflater.inflate(R.layout.cardview_item_answer); // not finding this layout

    return null;
}

This is the card layout xml (cardview_item_answer.xml) :

<?xml version="1.0" encoding="utf-8"?> 
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="160dp"
android:layout_height="160dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="5dp"
app:cardCornerRadius="4dp"
>

<androidx.appcompat.widget.LinearLayoutCompat
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <androidx.appcompat.widget.AppCompatImageView
        android:id="@+id/image_card"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:scaleType="centerCrop"
        android:background="#2d2d2d2d">
    </androidx.appcompat.widget.AppCompatImageView>

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/text_card"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="test"
        android:textSize="13sp"
        android:textColor="@color/black"
        android:layout_gravity="center"
        ></androidx.appcompat.widget.AppCompatTextView>

</androidx.appcompat.widget.LinearLayoutCompat>

Do you suggest any ideas ?

Thank you very much !

Upvotes: 0

Views: 571

Answers (3)

Dan
Dan

Reputation: 574

For some reasons neither of the solutions above worked for me.

I just had to use the full path to the layout before being able to use it. In my case the item of a spinner

So I did this:

import com.myProject.R.layout.spinner_item

It is never a suggested autocompletion, at least in my case, in model views. It is in the fragments. Can't make sense of that, but it works in view models too.

Upvotes: 0

Sevan Golnazarian
Sevan Golnazarian

Reputation: 1007

If the XML contains any errors, your build will likely fail - this will cause R.layout to yield unexpected results. I am not seeing a closing tag for the CardView in cardview_item_answer.xml

Try adding a closing tag </androidx.cardview.widget.CardView> at the end of cardview_item_answer.xml

Upvotes: 1

Gal Solomon
Gal Solomon

Reputation: 41

Solved ! If you ever have this problem -> clean project and invalidate Caches/Restart.

Upvotes: 1

Related Questions