簡體   English   中英

android.support.v4.widget.NestedScrollView無法轉換為android.support.v7.widget.RecyclerView

[英]android.support.v4.widget.NestedScrollView cannot be cast to android.support.v7.widget.RecyclerView

下午好,

我正在嘗試使用包含項目的RecyclerView創建片段。

在這些項目上方,我需要添加一些過濾器的標題。

這是片段的xml (fragment_products_list)

<?xml version="1.0" encoding="utf-8"?>

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="12sp"
            android:id="@+id/filters_frame">
            <include layout="@layout/expandable_filters"/>
        </RelativeLayout>

        <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/recyclerview"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </LinearLayout>
</android.support.v4.widget.NestedScrollView>

這是我的Fragment Java文件(ListFragment.java)中的OnCreateView:

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    RecyclerView rv = (RecyclerView) inflater.inflate(
            R.layout.fragment_products_list, container, false);

    //Product filters
    expandFiltersButton = (ImageButton) getView().findViewById(R.id.expand_filters);
    expandableZone = (LinearLayout) getView().findViewById(R.id.expandable_zone);

    expandFiltersButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            if(expandableZone.isShown()){
                expandableZone.setVisibility(View.GONE);
                expandFiltersButton.setImageResource(R.drawable.ic_more_24dp);
            }else{
                expandableZone.setVisibility(View.VISIBLE);
                expandFiltersButton.setImageResource(R.drawable.ic_less_24dp);
            }
        }
    });

    setupRecyclerView(rv);

    mRecyclerView = rv;
    loadUpdates();
    return rv;
}

當我嘗試運行該應用程序時出現以下錯誤代碼:

android.support.v4.widget.NestedScrollView cannot be cast to android.support.v7.widget.RecyclerView

有什么問題,我該如何解決? 謝謝你的幫助!

嘗試這個:

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(
            R.layout.fragment_products_list, container, false);


    //Product filters
     RecyclerView rv = (RecyclerView) view.findViewById(R.id.recyclerview);
    expandFiltersButton = (ImageButton) view.findViewById(R.id.expand_filters);
    expandableZone = (LinearLayout) view.findViewById(R.id.expandable_zone);

    expandFiltersButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            if(expandableZone.isShown()){
                expandableZone.setVisibility(View.GONE);
                expandFiltersButton.setImageResource(R.drawable.ic_more_24dp);
            }else{
                expandableZone.setVisibility(View.VISIBLE);
                expandFiltersButton.setImageResource(R.drawable.ic_less_24dp);
            }
        }
    });

    setupRecyclerView(rv);

    mRecyclerView = rv;
    loadUpdates();
    return view;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM