Android如何在ScrollView中保持RecyclerView回收

时间:2016-05-23 11:35:53

标签: android android-recyclerview nestedscrollview

我在nestedscrollview中有三个recyclerview,我需要第三个继续回收,就像他不在nestedscrollview中一样。 除了回收功能缺失外,一切都很顺利。

这是我的xml:

        <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/scroll_discovery"
        android:fillViewport="true"
        android:fitsSystemWindows="true"
        >
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            >
            <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/category_recycler"/>
            <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/category_recycler"
                android:id="@+id/user_recycler"/>
            <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/user_recycler"
                android:id="@+id/experiences"/>
        </RelativeLayout>
    </android.support.v4.widget.NestedScrollView>

这是java部分

experienceRecycler=(RecyclerView)findViewById(R.id.experiences);
    experienceRecycler.setHasFixedSize(true);
    mLayoutManager =new LinearLayoutManager(this) {
        @Override
        public boolean canScrollVertically() {
            return false;
        }
    };
    page= 1;
    experienceRecycler.setLayoutManager(mLayoutManager);
    experienceAdapter=new FeedCardAdapter(experiences,this,currentUser);
    experienceRecycler.setAdapter(experienceAdapter);
    /*experienceRecycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
            super.onScrollStateChanged(recyclerView, newState);
        }

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            feedCardAdapter.setScrolled(true);
        }
    });*/

    categoryRecycler=(RecyclerView)findViewById(R.id.category_recycler);
    categoryRecycler.setLayoutManager(new LinearLayoutManager(this){
        @Override
        public boolean canScrollVertically() {
            return false;
        }
    });
    categoryAdapter=new CategoryAdapter(this,categories);
    categoryRecycler.setHasFixedSize(true);
    categoryRecycler.setAdapter(categoryAdapter);

    userRecycler=(RecyclerView)findViewById(R.id.user_recycler);

    userRecycler.setLayoutManager(new LinearLayoutManager(this){
        @Override
        public boolean canScrollVertically() {
            return false;
        }
    });
    userAdapter=new UserAdapter(this,users);
    userRecycler.setAdapter(userAdapter);
    userRecycler.setHasFixedSize(true);

1 个答案:

答案 0 :(得分:0)

我最终找到了自己的解决方案。 我只是想要回收利用,我希望继续回收利用。