RecyclerView
과 함께 커서 로더를 사용하고 있으며, RecyclerView에서 항목을 제거 할 때를 제외하고 다른 모든 항목이 올바르게 작동합니다. 마지막 항목이 깜박입니다 ( RecyclerView 마지막 항목이 항목이 제거 될 때마다 깜박임
).
deleteData(viewHolder.getItemId());
:
last item blinks
삭제 내 코드 스 와이프
public void deleteData(long id){
Uri uri = ContentUris.withAppendedId(URI, id);
getContentResolver().delete(uri, null, null);
}
코드는
동일한 RecyclerAdapter
, ContentProvider
및 레이아웃 코드를 사용하는 또 다른 활동이 있지만 대부분의 구현 및 방법 접근법도 동일하지만 깜박임없이 완벽하게 작동하므로 나에게는 매우 이상한 상황입니다.
이 문제가 발생할 수있는 특별한 이유가 있습니까? 이미
recyclerView.getItemAnimator().setChangeDuration(0);
또는
((DefaultItemAnimator) recyclerViewObject.getItemAnimator()).setSupportsChangeAnimations(false);
같은 애니메이션을 해제하려하지만 아무도 내가 애니메이션 작업 할 않는 것을 말할 것도없고, 일을하지 않습니다.
편집 :에 RUNNABLE :
에서 onCreate :
"4668 @ 주"프리 오 = 5 TID = 0x2로의 꾸벅 꾸벅 = NA 실행 가능한 java.lang.Thread.State에 포인트 업로드 브레이크 com.jackz314.todo.HistoryActivity.onCreateLoader android.support.v4.app.LoaderManagerImpl에서 android.support.v4.app.LoaderManagerImpl.createLoader (LoaderManager.java:539)에서 (HistoryActivity.java:803) . createAndInstallLoader (LoaderManager. android.support.v4.app.LoaderManagerImpl.initLoader (LoaderManager.java:603) com.jackz314.todo.HistoryActivity.displayAllNotes (HistoryActivity.java:394) com.jackz314에서 에서의 548) : 자바. 에서 todo.HistoryActivity.deleteExpiredNotes com.jackz314.todo.HistoryActivity.onCreate (HistoryActivity.java:129)에서 (HistoryActivity.java:767) android.app.Activity.performCreate에서
(Activity.java:6975) android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1213) at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2770) at android. app.ActivityThread.handleLaunchActivity (ActivityThread.java:2892) android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1593)에서 android.app.ActivityThread.-wrap11 (ActivityThread.java:-1)에서 을
android.os.Handler.dispatchMessage (Handler.java:105) at android.os.Looper.loop (Looper.java:164) at android.app.ActivityThread.main (ActivityThread.java:6541) at java .lang.reflect.Method.invoke (Method.java:-1) at com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) at com.android.internal.os.ZygoteInit. main (ZygoteInit.자바 : 767)
onDelete (항목을 삭제) : 프리 오 = 5 TID = 0x2로의 NID = NA 실행 가능한 java.lang.Thread.State에
"4668 @ 메인" 에서 가 RUNNABLE COM com.jackz314.todo.HistoryActivity $ 4.onSwiped (HistoryActivity.java:434) android.support.v7.widget.helper.ItemTouchHelper $을 4 에서 .jackz314.todo.HistoryActivity.deleteData (HistoryActivity.java:791) .run (ItemTouchHelper.java:686) android.os.Handler.handleCallback (Handler.java:789) at android.os.Handler.dispatchMessage (Handler.java:98) at android.os.Looper.loop (Looper.java:164) at android.app.ActivityThread.main (ActivityThread.java:6541) at java .lang.reflect.Method.invoke (Method.java:-1) at com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240) at com.android.internal.os.ZygoteInit. 주 (ZygoteInit.java:767)
희망 사람들은
편집을하는 데 도움이 : 약간의 조사 후, 나는 마지막 항목이 실제로 BLIN하지 않았다 것을 알아 냈다 k, 그것은 RecyclerView
이 처음으로 길이/크기가 변경된 것으로 보이며 삭제 된 항목과 동일한 크기를 가진 섹션을 삭제 (삭제) 한 것으로 보이기 때문에 삭제 된 항목의 크기에 따라 마지막 항목이 표시되지 않습니다. 잠시 후 RecyclerView
은 처음에 삭제할 항목을 삭제합니다. 아직 주문을 어딘가에서 엉망으로 만들었거나 다른 이유가 있는지 판단하려고 노력 중입니다.
이 코드를 추가 할 때까지 비슷한 문제가 발생했습니다. 내 디자인은 RecyclerAdapter DetailsActivity 및 ListActivity입니다. 세부 정보에서 삭제하고 어댑터 코드에 연결된 목록을 알려줍니다. btnDelete ListActivity.removeListRow (position); // 코드 줄 위의 호출 위의 코드 줄 – Grendel
데이터 행을 삭제하는 활동에 다음과 같은 코드가 있습니까? //이 메서드는 DetailsActivity에서 호출되고 Recycler보기에 DB가 변경되었음을 알립니다. // 그리고 메서드는 Recycler와 동일한 변경을 수행합니다. DB 및 Recycler의 동기화보기 종류 public static void removeListRow (int position) { dbList.remove (position); mAdapter.notifyItemRemoved (position); mAdapter.notifyItemRangeChanged (position, dbList.size()); } – Grendel
모든 것이'cursorLoader'에 의해 자동으로 처리되기 때문에 데이터 행을 삭제하는 코드가 없기 때문에 나에게 혼란을줍니다. 나중에 당신의 방법을 시도해 볼게요, 고마워요. – jackz314