Как реализовать Android Pull-to-Refresh - PullRequest
399 голосов
/ 03 января 2011

В приложениях Android, таких как Twitter (официальное приложение), когда вы сталкиваетесь с ListView, вы можете опустить его (и он отскочит назад после освобождения), чтобы обновить содержимое.

Интересно, что это заКак вы думаете, лучший способ реализовать это?

Некоторые возможности, которые я мог бы придумать:

  1. Элемент поверх ListView - однако я не думаю, что прокручиваем обратно кПозиция элемента 1 (на основе 0) с анимацией в ListView - это простая задача.
  2. Другой вид за пределами ListView - но мне нужно позаботиться о перемещении позиции ListView вниз, когда он тянется, и я 'я не уверен, сможем ли мы определить, действительно ли перетаскивание в ListView действительно прокручивает элементы в ListView.

Любые рекомендации?

PS Интересно, когда появится официальное приложение Twitter?исходный код выпущен.Было упомянуто, что он будет выпущен, но прошло 6 месяцев, и с тех пор мы не слышали об этом.

Ответы [ 14 ]

4 голосов
/ 05 января 2011

Если вы не хотите, чтобы ваша программа выглядела как программа для iPhone, которая принудительно встроена в Android, стремитесь к более естественному внешнему виду и выполняйте нечто похожее на Gingerbread:

alt text

2 голосов
/ 25 мая 2014

Я думаю, что лучшая библиотека: https://github.com/chrisbanes/Android-PullToRefresh.

Работает с:

ListView
ExpandableListView
GridView
WebView
ScrollView
HorizontalScrollView
ViewPager
1 голос
/ 19 января 2015

Очень интересно Pull-to-Refresh от Yalantis . Gif для iOS, но вы можете проверить это :)

<com.yalantis.pulltorefresh.library.PullToRefreshView
android:id="@+id/pull_to_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
    android:id="@+id/list_view"
    android:divider="@null"
    android:dividerHeight="0dp"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

1 голос
/ 19 ноября 2014

Чтобы получить последнюю версию Lollipop Pull-To Refresh:

  1. Загрузите последнюю версию Lollipop SDK и библиотеку поддержки Extras / Android
  2. Установите для Project Build Target значение Android 5.0 (иначе пакет поддержкиможет иметь ошибки с ресурсами)
  3. Обновите ваши libs / android-support-v4.jar до 21-й версии
  4. Используйте android.support.v4.widget.SwipeRefreshLayout plus android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener

ПодробноРуководство можно найти здесь: http://antonioleiva.com/swiperefreshlayout/

Плюс для ListView Рекомендую прочитать о canChildScrollUp() в комментариях;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...