zu halten Ich habe drei Recyclerview in einem NestedScrollview und ich brauche, dass der dritte Recycling wie wenn er aus der NestedScrollview war. Alles geht gut, außer die Recycling-Funktion fehlt.Android, wie RecyclerView recycling in ScrollView
Hier ist meine 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>
und hier ist der Java-Teil
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);
Folgen Sie diesem Link: http://stackoverflow.com/questions/35746113/android-recycleview-inside-scrollview –
Danke für den Link, aber es erzeugt mir die folgende Ausnahme: 'java.lang.IndexOutOfBoundsException: Invalid item Position 0 (0). Anzahl der Elemente: 0 unter android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:4622) unter android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:4617) unter com.actvt .actvt.CustomLinearLayoutManager.measureScrapChild (CustomLinearLayoutManager.java:67) unter com.actvt.actvt.CustomLinearLayoutManager.onMeasure (CustomLinearLayoutManager.java30) ' – user1796260