- 博客:https://www.bbmax.cc
- 邮箱:[email protected]
- 微信:bbmaxcc
- QQ :172340021
生如蝼蚁当立鸿鹄之志,命薄似纸应有不屈之心。
android下拉刷新/加载更多组件库
生如蝼蚁当立鸿鹄之志,命薄似纸应有不屈之心。
在设置没有更多可加载后,底部显示了一块空白区域。感觉是LoadView占用的,不知道能不能取消
app:noLoadMoreHideView="true"
listView.setHasLoadMore(false);
均无效 除非
这样写才有效
listView.setHasLoadMore(true);
listView.setOnLoadMoreListener(new OnLoadMoreListener() {
@OverRide
public void loadMore() {
new Handler().postDelayed(new Runnable() {
public void run() {
listView.setHasLoadMore(false);
}
},1000);
}
});
RecyclerView 设置为GridLayoutManager时,加载更多的位置不在中间位置,偏左侧
myListView.setHasLoadMore(false);的时候默认会有一个白条,造成这个的原因是footview的控件没有显示出来
修改后好了,请作者查询mHasLoadMore = hasLoadMore;
if (!mHasLoadMore) {
if(mNoLoadMoreHideView && mHasLoadMoreViewShowState) {
hideLoadMoreView();
}
showLoadMoreView();
showNoMoreUI();
} else {
if(!mHasLoadMoreViewShowState) {
showLoadMoreView();
}
showNormalUI();
}
如题,在demo里没找到,还有为什么一用addHeader就报错了
public void setHasLoadMore(boolean hasLoadMore) {
mHasLoadMore = hasLoadMore;
if (!mHasLoadMore) {
showNoMoreUI();
if(mNoLoadMoreHideView) {
removeFooterView(mLoadMoreView.getFooterView());
mAddLoadMoreFooterFlag = false;
}
} else {
if(!mAddLoadMoreFooterFlag) {
mAddLoadMoreFooterFlag = true;
addFooterView(mLoadMoreView.getFooterView());
}
showNormalUI();
}
}
如果加载完第一页之后就没有更多数据了,然后调用一次setHasLoadMore(false)
,此时的预期应该是底部显示『没有更多了』,但是按照上面的逻辑会无法显示底部。
RecyclerViewFinal.java中setAdapter方法(120行左右)
没有调用super.setAdapter(adapter);的原因是什么?出于什么样的考虑?
在使用fastadapter等其它自定义adapter时,无法调用到adapter中重写的public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, List payloads) 方法
Warning:cn.finalteam.loadingviewfinal.HeaderAndFooterRecyclerViewAdapter: can't find referenced method 'void notifyItemRangeInserted(int,int)' in program class cn.finalteam.loadingviewfinal.HeaderAndFooterRecyclerViewAdapter
使用RecyclerViewFinal+StaggeredGridLayoutManager设置两列与垂直 上拉加载更多的footview是跟在第一列或者第二列的最新item后面
RecyclerViewFinal的setEmptyView没法用,看了下源码setAdapter里面adapter.registerAdapterDataObserver(mDataObserver)里面的mDataObserver这个对象被HeaderAndFooterRecyclerViewAdapter里面的mDataObserver替代了!那么setEmptyView要怎么使用?
页面中有个HorizontalScrollView,下拉刷新有冲突,,,请问作者后续会解决么?
RecyclerViewFinal中executeLoadMore():
void executeLoadMore() {
if(!mLoadMoreLock && mHasLoadMore) {
if (mOnLoadMoreListener != null) {
mOnLoadMoreListener.loadMore();
}
mLoadMoreLock = true;//上锁
showLoadingUI();
}
}
loadMore()是数据加载业务,在完成数据加载后,一般会调用RecyclerViewFinal.setHasLoadMore(true)
去释放锁。但是如果 loadMore()
很快就结束,那么 mLoadMoreLock 就始终为 true.
下次再 load more 的时候,就会只显示加载动画,不会执行。
建议更改:
mLoadMoreLock = true;//上锁
if (mOnLoadMoreListener != null) {
mOnLoadMoreListener.loadMore();
}
showLoadingUI();
api无法调用了 ,建议修改一下
Process: com.jgw.supercodepda, PID: 1813
java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:true
at android.support.v7.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:4878)
at android.support.v7.widget.RecyclerView$Recycler.quickRecycleScrapView(RecyclerView.java:4951)
at android.support.v7.widget.RecyclerView$LayoutManager.removeAndRecycleScrapInt(RecyclerView.java:7352)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3101)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2917)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3283)
at android.view.View.layout(View.java:14834)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14834)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14834)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14834)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14834)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14834)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14834)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14834)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14834)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14834)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14834)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1983)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1740)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5600)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:544)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.