1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jaynm-PullToRefreshListView

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

PullToRefreshScrollViewDemo

Android использование PullToRefresh для завершения ListView с возможностью прокрутки вниз для обновления и прокрутки влево для удаления

1. Основное содержание статьи:

  • Использование PullToRefresh для реализации прокрутки ListView вниз для обновления;
  • Расширение PullToRefresh для идеальной реализации эффекта удаления ListView при прокрутке влево; Примечание: в данной статье PullToRefresh не является полной открытой библиотекой, некоторые ненужные и не связанные с повседневным использованием классы были удалены автором. Это делает код более лаконичным и понятным. Скачать исходный код библиотеки PullToRefresh можно по ссылке: http://download.csdn.net/detail/jaynm/9670737

2. Давайте посмотрим на эффект:

  1. Прокрутка ListView вниз для обновления, вверх для загрузки дополнительных данных:

  1. Прокрутка ListView вниз для обновления, вверх для загрузки дополнительных данных, влево для удаления:

3. Реализация кода:

Реализация прокрутки ListView для обновления: Что касается класса PullToRefreshBase, то автор изменил исходный код, который слишком длинный, чтобы его здесь приводить. Вы можете скачать демоверсию и внимательно её изучить, основное внимание уделяется тому, как применить это к вашему проекту: /**

  • Created by caobo on 2016/11/1 0001.

  • ListView с прокруткой вниз для обновления, вверх для загрузки дополнительных данных */ public class ListViewActivity extends Activity implements PullToRefreshBase.OnRefreshListener { private PullToRefreshListView refreshlistview; private ListView mListView;

    // Добавление данных в список // Здесь используется LinkedList для удобства добавления данных в демоверсии, в реальном проекте можно использовать ArrayList. private LinkedList pullData;

    private ListAdapter adapter;

    // Отметить индекс прокрутки вниз private int pullDownIndex = 0;

    // Отметить индекс прокрутки вверх private int pullUpIndex = 0;

    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listview); pullData = new LinkedList<>(); refreshlistview = (PullToRefreshListView) findViewById(R.id.refreshlistview); refreshlistview.setPullLoadEnabled(false); refreshlistview.setScrollLoadEnabled(true); refreshlistview.setOnRefreshListener(this); mListView = refreshlistview.getRefreshableView(); adapter = new ListAdapter(getData()); mListView.setAdapter(adapter); refreshlistview.onRefreshComplete(); }

    @Override public void onPullDownToRefresh(PullToRefreshBase refreshView) { onPullDown(); }

    @Override public void onPullUpToRefresh(PullToRefreshBase refreshView) { onPullUp(); }

    /**

    • Предварительная загрузка начальных данных списка
    • @return */ public List getData() { for (int i = 1; i <= 20; i++) { pullData.add("Данные ListView по умолчанию" + i); } return pullData; }

    /**

    • Добавить данные в список при прокрутке вниз */ public void onPullDown() { pullData.addFirst("Данные, добавленные при прокрутке вниз" + pullDownIndex); pullDownIndex++; refreshlistview.onRefreshComplete(); adapter.notifyDataSetChanged(); }

    /**

    • Загрузить дополнительные данные в список при прокрутке вверх */ public void onPullUp() { pullData.addLast("Данные, загруженные при прокрутке вверх" + pullUpIndex); pullUpIndex++; refreshlistview.onRefreshComplete(); adapter.notifyDataSetChanged(); }

    public void onBackClick(View view){ finish(); } }

Это всё ещё очень просто, и вы можете завершить прокрутку ListView вниз для обновления и вверх для загрузки дополнительных данных. XML файл макета также очень прост, вам нужно только сослаться на адрес PullToRefreshListView: Таким образом, мы завершили прокрутку вниз для обновления и загрузку дополнительных данных для списка ListView. Я считаю, что библиотека PullToRefresh очень мощная.

<com.jaynm.pulltorefreshscrollviewdemo.refresh.PullToRefreshListView
    android:background="#000"
    android:id="@+id/refreshlistview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:cacheColorHint="@android:color/transparent"
    android:divider="@color/consumer_bg"
    android:dividerHeight="1px"
    android:fadingEdge="none"
    android:orientation="vertical"
    android:overScrollMode="never"
    android:requiresFadingEdge="none">
</com.jaynm.pulltorefreshscrollviewdemo.refresh.PullToRefreshListView>

Реализация прокрутки ListView вниз для обновления и влево для удаления: Обратите внимание: a. Здесь мы переопределяем ListView, создавая SwipeMenuListView, поэтому он всё ещё является элементом управления списком ListView; b. Поскольку требуется прокрутка влево, необходимо определить операцию скольжения в методе onTouchEvent(); c. Необходимо учитывать конфликты событий прокрутки вниз, вверх и влево; d. Необходимо учесть, что событие удаления влево может происходить только один раз для каждого элемента списка.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/jaynm-PullToRefreshListView.git
git@api.gitlife.ru:oschina-mirror/jaynm-PullToRefreshListView.git
oschina-mirror
jaynm-PullToRefreshListView
jaynm-PullToRefreshListView
master