Size: a a a

Android Developers

2020 January 22

СП

Сергей П. in Android Developers
Ну да, потом с объекта
getJsonString
Если ключ известен
источник

O

OK in Android Developers
Drag'n'drop элементов RecyclerView сделал на основе следующего ресурса:
https://medium.com/@ipaulpro/drag-and-swipe-with-recyclerview-6a6f0c422efd

С применением ItemTouchHelper, свайп в сторону отключен, использую только перемещение элементов RecyclerView
источник

DS

Daniel Sergeev in Android Developers
OK
Попробую по другому. Скроллинг и включение элемента SwipeRefreshLayout делал следующим образом:
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
           @Override
           public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
               int topRowVerticalPosition = (recyclerView == null || recyclerView.getChildCount() == 0) ? 0 : recyclerView.getChildAt(0).getTop();
               swipeRefreshLayout.setEnabled(topRowVerticalPosition >= 0);
           }

           @Override
           public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
               super.onScrollStateChanged(recyclerView, newState);
           }
       });

Везде работает. Но когда внутри Fragment еще включил ItemTouchHelper, для drag'n'drop элементов внутри RecyclerView, данный способ перестает работать для SwipeRefreshLayout

После пары drag'n'drop элементов RecylerView перестает вызываться onRefresh, SwipeRefreshLayout. Хотя по последнему статусу он включен
refresh.isEnabled = scrollState != SCROLL_STATE_DRAGGING
источник

DS

Daniel Sergeev in Android Developers
SwipeToDeleteItemTouchHelper(
   onStartSwipe =
{ refresh.isEnabled = false }, //to prevent pull-to-refresh from processing swiping events
   
onFinishSwipe = { refresh.isEnabled = true },
   onSwiped =
{ item, position ->},
   adapter = adapter,
   contentViewExtractor =
{ it?.findViewById(R.id.lFilterContent) }
).attachToRecyclerView(recyclerView)
источник

DS

Daniel Sergeev in Android Developers
Вот такое еще дам
источник

DS

Daniel Sergeev in Android Developers
посмотри в эту сторону
источник

O

OK in Android Developers
До drag'n'drop из самых нижних элементов работает, после того как перемещаю снизу в верхнюю часть перестает
источник

O

OK in Android Developers
Спасибо за совет, Daniel, попробую
источник

QH

Quantum Harmonizer in Android Developers
OK
До drag'n'drop из самых нижних элементов работает, после того как перемещаю снизу в верхнюю часть перестает
ты же делаешь setEnabled, смотри в эту сторону
источник

DS

Daniel Sergeev in Android Developers
Ну смысл в том, чтобы при drag-n-drop выключать isEnabled = false
источник

DS

Daniel Sergeev in Android Developers
А после опять включать
источник

DS

Daniel Sergeev in Android Developers
И nested scrolling посмотри!
источник

O

OK in Android Developers
Да, последний вызов включает SwipeRefreshLayout (setEnabled=true), отлавливал через отладку состояние свайп элемента, когда перестает работать
источник

O

OK in Android Developers
Daniel Sergeev
И nested scrolling посмотри!
Попробовал отключить, тогда drag'n'drop перестает работать
источник

O

OK in Android Developers
Daniel Sergeev
Ну смысл в том, чтобы при drag-n-drop выключать isEnabled = false
Понятно, спасибо. Попробую
источник

DS

Daniel Sergeev in Android Developers
OK
Попробовал отключить, тогда drag'n'drop перестает работать
Хммм, если вот так повесить?

<SwipeRefreshLlayout
  app:nestedScrollingEnabed=«false»>

  <RecyclerView…>

</SwipeRefreshLlayout>
источник

O

OK in Android Developers
Аа... спасибо большое
источник

DS

Daniel Sergeev in Android Developers
не за что)
источник

DS

Daniel Sergeev in Android Developers
далеко не факт что это поможет)
источник

O

OK in Android Developers
Понимаю, в любом случае, за внимание спасибо
источник