Как обновлять recyclerView смещая его ниже самого progres view. Подобному как в инстаграм.

195
03 декабря 2017, 13:01

Пример обновления в инстаграме.

Answer 1

SwipeRefreshLayout из библиотеки Android support — «потяните чтобы обновить» Он добавляет функционал, который один мой коллега называет «резинка от трусов», а остальные знают этот UI-паттерн под названием «потяни, чтобы обновить». Он бывает нужен, когда есть какой-то контент, который пользователь хочет часто обновлять, и может это сделать, просто потянув контент жестом вниз, а потом отпустив.

Очень похоже, что компонент был создан для GoogleNow, а потом перекочевал в support lib (очень похожа анимация).

Алгоритм простой. Компонент «оборачивается» вокруг View или Layout, для которого нужно сделать обновление и может содержать только одного потомка (похоже на ScrollView). Устанавливается OnRefreshListener с одним единственным методом onRefresh(). Как на него реагировать — решаем сами. Когда нужно показать, что идет обновление (и запустить анимацию), вызываем метод setRefreshing(boolean) и передаем ему true. Наиболее логичным кажется вызов метода внутри onRefresh(). Когда обновление закончено, вызываем метод setRefreshing(boolean) и передаем ему false.

<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:id="@+id/container"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical" />

Логику можете написать тут:

mSwipeRefreshLayout.setOnRefreshListener(new    SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            // Do some logic
            // if (refresh is ok)
            Toast.makeText(getContext(), "Refresh", Toast.LENGTH_SHORT).show();
        }
     });
READ ALSO
Как сохранить строковый массив?

Как сохранить строковый массив?

Пусть у меня есть массив testКак мне сделать так, чтобы он сохранялся в sharedPreferences при выходе из программы и загружался при входе?

203
Ключ шифрования не подходит

Ключ шифрования не подходит

Загружаю ключ из памяти телефона, декодирую из base64 в byte, получаю ключ и дальше уже работаю с нимНо при запуске программа выдает ошибку

152
Серверная часть для android-приложения на Java?

Серверная часть для android-приложения на Java?

Добрый день, уважаемые разработчикиСтолкнулся с задачей выбора способа реализации серверной части для android-приложения

173
Как преобразовать один Map в другой?

Как преобразовать один Map в другой?

Есть Map<Entity,List<Integer>, также имеется Mapper для entity->dto и обратноКак из первой Map получить Map<Dto,List<Integer>> при помощи лямбд?

145