Closed bean-liu closed 3 years ago
StateView 设置的布局的高度 是你布局的自身高度,如果你将引入的layout高度写死为50dp,那高度就为50dp。
如果你想StateView里面的内容在RV剩下的区域居中,那么你需要将剩下的高度设置给layout,不能上下滑动你可以禁止上下刷新setRefreshEnabled(false);
或上拉加载setLoadMoreEnabled(false);
就好了。
简单点说,如果你想达到上述说的需求,你需要:
1.将StateView里面的布局高度设置为RV剩下区域的高度,然后再布局里设置内容居中
2.不能下拉刷新setRefreshEnabled(false);
3.不能加载更多setLoadMoreEnabled(false);
注意在合适的时候将这两个状态设置为 true
@youlookwhat 谢谢回复,不过有时候不仅仅是header挤占了StateView的高度,因为RV高度可能也需要变化。比如我RV列表数据在为空的时候RV外层的Linearlayout底部会展开一个推荐广告,这就会导致RV高度产生变化,所以我在想或许在RV内部根据RV和header的高度自行调整StateView的高度,这样使用的的时候就方便了。
在RV内部根据RV和header的高度自行调整StateView的高度
这个需求有点复杂了,而且应该需求量不是特别广,所以建议自己实现。
比如在保持HeaderView显示的时候StateView会超过屏幕的高度,这个时候其实我还是希望StateView里面的内容在RV剩下的区域居中,并且不能上下滑动。请问有什么好的办法吗?