Comments (9)
setStateView 可以理解为一个headerView,不知道你使用addHeaderView是否会有问题。在DiffUtil
里需要使用正确的Position,应该是需要减掉 recyclerView.getCustomTopItemViewCount()
。你减去这个再试试
from byrecyclerview.
使用addHeaderView我试了DiffUtil
没发现问题,如果你试了后还有问题的话,我改改
from byrecyclerview.
setStateView 可以理解为一个headerView,不知道你使用addHeaderView是否会有问题。在
DiffUtil
里需要使用正确的Position,应该是需要减掉recyclerView.getCustomTopItemViewCount()
。你减去这个再试试
我在DiffUtils之前 recyclerView.isStateViewEnabled = false 写了这句的,我看源码应该是把size置为0了,理论上不应该是position的问题
/** * Get the number of StateView */ public int getStateViewSize() { return mStateViewEnabled && mStateLayout != null && mStateLayout.getChildCount() != 0 ? 1 : 0; }
from byrecyclerview.
setStateView 可以理解为一个headerView,不知道你使用addHeaderView是否会有问题。在
DiffUtil
里需要使用正确的Position,应该是需要减掉recyclerView.getCustomTopItemViewCount()
。你减去这个再试试
事实上我打印getCustomTopItemViewCount确实也为0
from byrecyclerview.
setStateView将position=0位置为状态布局,使用的是SimpleViewHolder;然而DiffUtils时positin=0会是内容的adapter,这样会出现问题。看来如果要使用setStateView,一定要使用notifyDataSetChanged()。因为position的位置会变化,这种好像也是无解的。
有一种其他的方式可以解决,不过可能不太友好,就是StateView不设置为false,设置一个0高度的布局,这样position的位置也不会变。headerview因为不会消失,所以使用DiffUtils也没问题,如果消失了可能也会出现问题。
from byrecyclerview.
setStateView将position=0位置为状态布局,使用的是SimpleViewHolder;然而DiffUtils时positin=0会是内容的adapter,这样会出现问题。看来如果要使用setStateView,一定要使用notifyDataSetChanged()。因为position的位置会变化,这种好像也是无解的。
有一种其他的方式可以解决,不过可能不太友好,就是StateView不设置为false,设置一个0高度的布局,这样position的位置也不会变。headerview因为不会消失,所以使用DiffUtils也没问题,如果消失了可能也会出现问题。
方法一是可以的 https://www.jianshu.com/p/2eca433869e9 ,谢啦,下班
from byrecyclerview.
setStateView将position=0位置为状态布局,使用的是SimpleViewHolder;然而DiffUtils时positin=0会是内容的adapter,这样会出现问题。看来如果要使用setStateView,一定要使用notifyDataSetChanged()。因为position的位置会变化,这种好像也是无解的。
有一种其他的方式可以解决,不过可能不太友好,就是StateView不设置为false,设置一个0高度的布局,这样position的位置也不会变。headerview因为不会消失,所以使用DiffUtils也没问题,如果消失了可能也会出现问题。
你觉得设置为false的时候移除StateView 可不可行
from byrecyclerview.
可以,我尝试一下👌
from byrecyclerview.
public void setStateViewEnabled(boolean stateViewEnabled, boolean isRemoveRefresh) {
this.mStateViewEnabled = stateViewEnabled;
if (isRemoveRefresh && !mStateViewEnabled) {
if (mWrapAdapter != null) {
mWrapAdapter.getOriginalAdapter().notifyItemRemoved(getPullHeaderSize() + getHeaderViewCount());
}
}
}
加了一个这个方法,可以设置 setStateViewEnabled(false,true);试试,我这边还没测试diff的情况
from byrecyclerview.
Related Issues (20)
- 优秀 HOT 5
- 仓库下载不到资源
- item 悬浮置顶加入下拉刷新 ,悬浮错位! HOT 2
- 计划新增 侧滑和拖拽功能 HOT 3
- 计划新增 ViewBinding使用示例 HOT 1
- 计划 同步代码到gitee
- 怎样在xml绑定数据 HOT 1
- 添加headerview后,主体内容却不显示了 HOT 2
- 发现一个bug HOT 8
- setStackFromEnd = true 下拉刷新有点不正常 HOT 14
- 可以增加一个treeview的的适配器吗 HOT 4
- can show the second floor demo? HOT 1
- 希望增加一个功能 HOT 4
- 大佬,何时增加多级列表 HOT 2
- 列表在吸顶状态,然后detach再重新attach时,出现2个吸顶布局 HOT 11
- Demo中可以增加字母索引的案例吗 HOT 2
- 报废或附加的视图可能无法回收
- 大牛真厉害 HOT 1
- 给大牛ByRecyclerView提建议 HOT 8
- 嵌套和多级列表问题
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from byrecyclerview.