chanven / commonpulltorefresh Goto Github PK
View Code? Open in Web Editor NEWAndroid widget with pull to refresh for all the views,and support loadMore for ListView , RecyclerView, GridView and SwipeRefreshLayout.
License: Apache License 2.0
Android widget with pull to refresh for all the views,and support loadMore for ListView , RecyclerView, GridView and SwipeRefreshLayout.
License: Apache License 2.0
您好:
下面是有关于RecycleView的问题
作者在RecyclerAdapterWithHF中对adapter添加header 和footer
mAdapter.addHeader(mHeader);
mAdapter.addFooter(mHeader);
当LinearLayoutManager 为 StaggeredGridLayoutManager时列数大于1
addHeader 和 addFooter 变为Item,布局错位,看了代码后发现,作者是在把view 当做adapter 的一个Item 给添加进去的,这样当为StaggeredGridLayoutManager 或GridView ,列数大于1,添加的头部和底部会变形,还有加载更多 同样
public void addHeader(View header) {
if (!mHeaders.contains(header)) {
mHeaders.add(header);
// animate
notifyItemInserted(mHeaders.size() - 1);
}
}
mAdapter = new RecyclerAdapterWithHF(adapter);
// mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
// mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(4,
// StaggeredGridLayoutManager.VERTICAL));
mRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
加载更多作为了瀑布流的一个item显示了,并没有占据屏幕一行。
java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead
想不到好的处理方法,可以给个思路吗
banner 可以是 ViewPager 或者其他view
大神 新版本怎么没有setNoMoreData()方法了
不是下拉刷新的头布局
如题
我需要修改上拉加载的样式,但是找不到地方设置.
在PtrFrameLayout中已经被写死了
private ILoadViewMoreFactory loadViewFactory = new DefaultLoadMoreFooter(); //line 1046
具体的代码我发到你的邮箱了,能指教下么
setLoadMoreEnable 在快速滑动模式下失效
这个下拉刷新的控件里面只能包含一个控件而且是View还不能是Layout吗?我用这个布局包含一个RelativeLayout,设置可以加载更多时就崩溃,而且RelativeLayout包含ListView的话可以上滑但没办法下滑
在自己项目添加tools:replace="android:allowBackup"无法实现覆盖,请问该依赖库为什么需要设置android:allowBackup属性
当 grideview 设置 2行显示,数据是 偶数的时候 加载更多是 正常的,但是如果是单数 就会出现大片空白的情况
想完全关闭下拉刷新,怎么做到呢?
我现在标题用design包里面的AppBarLayout,下拉的问题被我解决了,但是上拉加载更多之后,然后往上滑动,AppBarLayout出现的时候是空的。。。不知道作者知道什么问题吗?
demo中 recycle view 上拉没反应,要点了才能加载。why?
---》不知道算不算解决:
搞了大半天,才发现support版本问题,如果用23.4.0则出现上面的问题,改回成23.1.1,问题解决。
在使用GridViewWithHeaderAndFooter的过程中,发现设置mPtrFrame.setLoadMoreEnable(true)没有效果。
我在运行Demo的时候发现2个问题:都是上拉加载更多
第一个:
若是ListView,那么当footView出现一点点的时候就会加载更多,而RecyclerView需要footView全部出现才会加载更多。
第二个:
mData.add(new String(" RecyclerView item - add " + page));
mAdapter.notifyDataSetChanged();
必须在一起,如果采用mHandler.sendEmptyMessageDelayed(123, 1500);把加载数据和 mAdapter.notifyDataSetChanged();分开,会有bug。
ptrClassicFrameLayout.setPtrHandler(new PtrDefaultHandler() {
@Override
public void onRefreshBegin(PtrFrameLayout frame) {
mData.add(new String(" RecyclerView item - add " + page));
mHandler.sendEmptyMessageDelayed(123, 1500);
}
});
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 123) {
mAdapter.notifyDataSetChanged();
ptrClassicFrameLayout.loadMoreComplete(true);
page++;
Toast.makeText(RecyclerViewActivity.this, "load more complete", Toast.LENGTH_SHORT).show();
}
}
};
会出现bug:一次正常有1.5s的间隔,一次没有(直接是加载更多后的结果),依次循环。
下拉刷新WebVeiw
WebVeiw 里向下滚动后 向上滑 回不到顶部 直接刷新 WebView.reload(); 后 依然回不到首页
原来工程一直用pulltorefresh,今天挖到这个,感觉还不错,但有几个建议
1.把替换加载图片和加载文字做成接口(目前可以替换图片,但没有替换加载文字的,这个pulltorefresh要好点,全接口形式)
2.能不能灵活点可配置一些东西(比如加载更多,我可以配置成上提界面实现加载,也可以配置成自动加载,(总要是产品很多要求,一会要自动,一会要上提))
3Q,辛苦
感谢作者的付出。
但是希望作者能对接口的使用和复杂度进行精简,现在的学习成本太高了。例如修改底部刷新布局的工作量,都远远超出了预期。
谢谢
当在上拉加载更多即isLoading为true的过程中,让swiperefreshlayout的enable为false,直到loadMoreComplete被调用,同样是下拉刷新过程中,上拉加载更多也设置为不可用
android Studio中使用出现recyleview multidex错误,使用的版本为v7-23.1.0,demo可以运行,但是移植module后出现该问题,希望能给予提示
如果代码执行到这里就会抛出异常,请问是怎么兼容scrollview的
if (null == mLoadMoreHandler) { if (mContentView instanceof GridView) { mLoadMoreHandler = new GridViewHandler(); } else if (mContentView instanceof AbsListView) { mLoadMoreHandler = new ListViewHandler(); } else if (mContentView instanceof RecyclerView) { mLoadMoreHandler = new RecyclerViewHandler(); } } if (null == mLoadMoreHandler) { throw new IllegalStateException("unSupported contentView !"); }
如题,loadmore有开关,但是下拉刷新没有,怎样简单的加一个方法?
最新的recyclerview加了autoMeasure功能,在 RecyclerAdapterWithHF 中的onCreateViewHolder里面,
自己创建的HeaderFooterView不应该在用MATCH_PARENT了.
FrameLayout frameLayout = new FrameLayout(viewGroup.getContext()); // make sure it fills the space frameLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); return new HeaderFooterViewHolder(frameLayout);
在使用SwipeRefreshLayout 里面用 gridView 添加头和尾 滑动的话 直接 抽风,补充:发现在 viewPager里面 并且 添加 头 和 尾 ,都会 出现 滑动 异常 ,头显示 不正常
有没有一个方法可以去掉上拉加载的
貌似嵌套scrollview里面连高度都算不出来了。
用RecyclerView 做瀑布流的效果, 只有两种item,第一行中0,2位置用的高度较高的item,1位置用的高度较低的item,其余都用的是高度较低的item,运行后,0,1位置老是会有个位置切换的动画,请问怎么解决?
有时候只需要加载更多就行的,下拉刷新怎么关闭的?
滑动到底端不刷新,用户可以选择手动点击刷新,或者继续上拉刷新?真心请教
In my case, i used notifyItemRangeInserted(), but exceptions occured one by one....so please give us a sample to explain how to use notifyItemRangeInserted() or notifyItemRangeRemoved().Thanks.
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 4(offset:4).state:11
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4405)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4363)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1961)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1370)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1333)
at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1161)
at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1018)
at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:3807)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:780)
at android.view.Choreographer.doCallbacks(Choreographer.java:593)
at android.view.Choreographer.doFrame(Choreographer.java:561)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:766)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5314)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:680)
at dalvik.system.NativeStart.main(Native Method)
footerTv.setOnClickListener(onClickRefreshListener);
会导致点击其他位置会和ListView item监听冲突导致数据错误;
应该设置在父控件上
RT
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.