Die RecyclerView
vermasselt, wenn mit Marshmallow (Android 23)
gebaut.Marshmallow (23) + RecyclerView (23.1.0) Scrollen vermasselt Inhalt oben nach dem Entfernen des Elements (notifyItemRemoved)
Ich benutze RecyclerView
mit einer Liste von Elementen gefüllt und wenn swiped nach rechts wird das Element entfernen. Das Entfernen des Artikels funktioniert einwandfrei. Wenn Sie jedoch nach dem Entfernen eines Objekts auf der RecyclerView
nach oben scrollen, wird auf dem Objekt über dem entfernten Objekt ein leerer Bereich erstellt.
Ich bin mit dem Beispielprojekt hier https://github.com/chrisbanes/cheesesquare mit der neuesten Android-Version (Eibisch)
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.support.android.designlibdemo"
minSdkVersion 9
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
}
und fügen Sie die Swipe-Code zu entlassen
private void setItemDismiss(final RecyclerView recyclerView) {
ItemTouchHelper.SimpleCallback simpleCallback = new ItemTouchHelper.SimpleCallback(ItemTouchHelper.RIGHT, ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
int position = viewHolder.getAdapterPosition();
((SimpleStringRecyclerViewAdapter)recyclerView.getAdapter()).removeItemAt(position);
}
};
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleCallback);
itemTouchHelper.attachToRecyclerView(recyclerView);
}
Der Adapter das Verfahren hat removeItemAt
zu entfernen Artikel
public void removeItemAt(int position) {
mValues.remove(position);
notifyItemRemoved(position);
}
Alles wor dieses ks gut, wenn compileSdkVersion 22
und targetSdkVersion 22
mit com.android.support:recyclerview-v7:22.2.0
Check: https://www.youtube.com/watch?v=AbiFzDzFwjo&feature=youtu.be
Lassen Sie mich wissen, ob jemand dieses Problem hatte.
Können Sie den Aufruf 'removeItemAt include()'? Ruft es [notifyItemRemoved()] (https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter.html#notifyItemRemoved (int)) auf? – ianhanniballake
Ich stoße auch auf dieses Problem ... Ich bin froh, dass es nicht nur ich ist. Ich dachte, ich würde verrückt werden. –
Glat zu wissen, dass es bald behoben wird. Für den Moment, wenn Sie 'DefaultItemAnimator' mit Ihrer eigenen Dummy-Klasse ändern, die 'RecyclerView.ItemAnimator' erweitert, verschwindet das Problem, Sie erhalten jedoch keine Animationen. mRecyclerView.setItemAnimator() – feresr