android.view.InflateException: строка двоичного XML-файла # 0: ошибка надувания класса <unknown>! - PullRequest
0 голосов
/ 06 июня 2018

Этот метод может отображать ошибки.

Ошибка:

Причина:

android.view.InflateException: Binary XML file line #0: Error inflating class <unknown>                                                                       

Причина:

java.lang.reflect.InvocationTargetException

этот код ниже,

.inflate(R.layout.item_layout, parent, false); 

отображает ошибку ..

, и это onCreateViewHolder с ошибкой.

    @Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int 
viewType) {

    if (viewType == VIEW_TYPE_ITEM)
    {
        View view = LayoutInflater.from(activity)
                .inflate(R.layout.item_layout, parent, false);
        return new ItemViewHolder(view);
    }
    else if ( viewType == VIEW_TYPE_LOADING){
        View view = LayoutInflater.from(activity)
                .inflate(R.layout.item_loading, parent, false);
        return new LoadingViewHolder(view);
    }
    return null;
}

и это элемент.layout xml коды!Я думал, что этот XML-файл связан с ошибкой.поэтому я написал это.спасибо !!!

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height= "wrap_content"
    android:orientation="vertical"
app:cardElevation="10dp"
android:layout_margin="10dp"
>

<LinearLayout
    android:orientation="vertical"
    android:padding="10dp"
    android:layout_width="match_parent"
    android:background="?android:selectedWeekBackgroundColor"
    android:layout_height="wrap_content">

<TextView
    android:id="@+id/txtName"
    android:text="Name"
    android:textSize="16sp"
    android:textColor="@android:color/black"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
<TextView
    android:id="@+id/txtLength"
    android:text="length"
    android:textSize="16sp"
    android:textColor="@android:color/black"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
</LinearLayout>

1 Ответ

0 голосов
/ 06 июня 2018

Глядя на ваш вопрос, кажется, что у вас есть проблема с вашим методом getItemViewType в RecyclerView.Adapter.

Реализация этого метода по умолчанию возвращает 0, делая предположение об одном типе представления для адаптера.,Так как вы ожидаете другого типа представления, убедитесь, что вы разумно переопределили этот метод.

Если вы не реализовали getItemViewType, тогда ваш onCreateViewHolder всегда будет возвращать нулевой ViewHolder, поскольку он никогда не будет соответствовать вашему VIEW_TYPE_ITEM& VIEW_TYPE_LOADING.Решением было бы правильно переопределить getItemViewType и вернуть соответствующий тип представления.

@Override
public int getItemViewType(int position) {
    final boolean shouldShowTypeItem = <your conditional statement>;
    return shouldShowTypeItem ? VIEW_TYPE_ITEM : VIEW_TYPE_LOADING;
}
...