Можно ли объединить stickylistviewheader с crisbanes pulltorefresh?

Я создаю приложение, где pulltorefresh и stickylistHeaders тоже нужны. Я реализовал pulltorefresh в приложении, но не могу заставить его работать с stickyListHeaders. Можно ли объединить две библиотеки? Или есть альтернатива? Какие-нибудь идеи?

Моя реализация была нарушена после обновления обеих библиотек. Это мое быстрое решение, чтобы заставить его работать снова. Любые предложения и улучшения приветствуются!

  1. Создайте новый класс и расширьте SticklistListHeadersListView и реализуйте интерфейс ViewDelegate из ActionBar-PullToRefresh:

    public class PtrStickyListHeadersListView extends StickyListHeadersListView implements ViewDelegate { public PtrStickyListHeadersListView(Context context) { super(context); } public PtrStickyListHeadersListView(Context context, AttributeSet attrs) { super(context, attrs); } public PtrStickyListHeadersListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean isReadyForPull(View view, float v, float v2) { View childView = getWrappedList().getChildAt(0); int top = (childView == null) ? 0 : childView.getTop(); return top >= 0; } } 
  2. И в вашем layout.xml замените

     <se.emilsjolander.stickylistheaders.StickyListHeadersListView ...> 

    с

     <com.yourapp.package.foo.PtrStickyListHeadersListView ...> 
  3. И, наконец, добавьте делегат: ( listView – это экземпляр PtrStickyListHeadersListView)

     ActionBarPullToRefresh.from(getActivity()) // We need to insert the PullToRefreshLayout into the Fragment 's ViewGroup .insertLayoutInto(viewGroup) // We need to mark the ListView and it 's Empty View as pullable // This is because they are not dirent children of the ViewGroup .theseChildrenArePullable(R.id.your_list_id) // We can now complete the setup as desired .listener(...) .useViewDelegate(PtrStickyListHeadersListView.class, listView) .setup(mPullToRefreshLayout); 

Как и в ответе Хелдена, вы также можете добиться этого, используя анонимный внутренний класс без расширения StickyListHeadersListView

  myList = (StickyListHeadersListView) v.findViewById(R.id.your_list_id); ActionBarPullToRefresh.from(getActivity()) .allChildrenArePullable() .listener(this) .useViewDelegate(StickyListHeadersListView.class, new ViewDelegate() { @Override public boolean isReadyForPull(View view, float v, float v2) { return ... //check if list is scrolled to the top or not } }) .setup(mPullToRefreshLayout); 
Intereting Posts
Показывать пароль с помощью EditText Получение булевых и целых чисел из strings.xml Как проверить лицензионное разрешение Android других приложений Является ли отказ от приложения неодобрительным? Сбой сборки в студии Android Android: метод findViewById (), который возвращает значения, которые нам не нужно делать Напишите приложение, которое может использовать плагины Как удалить разделительную линию / тень между строкой состояния и основным экраном? Получить контактную информацию из ID контакта в Android Активность никогда не запускается при нажатии на уведомление по версии для Android версии 4.0 Как добавить onclicklistener в динамически сгенерированное текстовое представление? Добавить элемент в список массивов android Android BroadcastReceiver onReceive Update TextView в MainActivity Интеграция Google Voice Recognition в приложении Android Попытка поймать щелчок на элементе ListView android: android: descendantFocusability = "blocksDescendants" не работает