我构建了一个应用程序,其中pulltorefresh和stickylistHeaders都是需要的。我已经在应用程序中实现了pulltorefresh,但是无法使其与stickyListHeaders一起工作。是否可以合并这两个库? 还是有其他选择吗?任何想法?是否可以将stickylistviewheader与crisbanes pulltorefresh合并?
4
A
回答
7
我的实现在更新两个库之后也被破坏了。这是我的快速修复程序,使其再次工作。 欢迎任何建议和改进!
创建一个新的类,并延长SticklistListHeadersListView并实现从动作条,PullToRefresh的ViewDelegate接口:
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; } }
而在你
layout.xml
更换<se.emilsjolander.stickylistheaders.StickyListHeadersListView ...>
与
<com.yourapp.package.foo.PtrStickyListHeadersListView ...>
,最后,添加代理:(
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);
3
到赫尔登的回答一样,你也可以做到这一点使用匿名内部类不延长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);
相关问题
- 1. 是否可以将OpenFL与NME混合?
- 2. 是否可以将Unity与UIKit混合?
- 3. 是否可以将Google Places API与Google Geocoding API合并?
- 4. 是否可以将Guard与并行测试结合使用?
- 5. 是否可以合并这些查询?
- 6. 是否可以合并多个ng级
- 7. Overscroll(PullToRefresh)是否兼容2.2?
- 8. 合并与合并:可以简化吗?
- 9. 是否有可能将django模型类与ManyToMany关系合并?
- 10. 是否可以将多个样式合并为一个?
- 11. 是否可以将这些查询合并为一个?
- 12. SQL:是否可以将INSERT和SELECT语句合并为一个
- 13. SSRS是否可以将用户输入合并到报告中?
- 14. 是否可以将单元测试合并到列表中?
- 15. 是否可以将这2个SPARQL INSERT合并为一个?
- 16. 是否可以将其合并为一个查询?
- 17. 是否可以与孩子
- 18. 是否可以将Nodejs与CakePHp集成?
- 19. 是否可以将Sync Framework与实体框架结合使用?
- 20. 是否可以将$(this)与非子元素结合使用?
- 21. 是否可以将Facebook对话与非Facebook身份整合?
- 22. 是否可以将EditTextPreference与CheckBoxPreference结合使用?
- 23. 是否可以将id/class与属性结合使用?
- 24. 是否可以将PLUpload与CouchDB结合使用?
- 25. 是否可以在XPages SSJS中将@ Functions与sessionAsSigner结合起来?
- 26. R:是否可以将晶格xy图与ggplot结合?
- 27. 是否可以将变量赋值与条件测试混合?
- 28. 是否可以将gluLookAt与Vertex Shader结合使用?
- 29. 是否可以将Hudson与Assembla空间整合?
- 30. 是否可以将Guava的ForwardingListIterator与PeekingIterator结合使用?
它工作的很好,谢谢 – Ray