youlookwhat / ByRecyclerView

🔥 RecyclerView 下拉刷新、上拉松手/自动加载更多、item点击/长按、item局部刷新、头布局/尾布局/状态布局、万能分割线、Skeleton骨架图、极简adapter、嵌套滑动置顶
https://youlookwhat.github.io/ByRecyclerView
Apache License 2.0
798 stars 139 forks source link

StateView好像不能设置居中 #20

Closed bean-liu closed 3 years ago

bean-liu commented 3 years ago

比如在保持HeaderView显示的时候StateView会超过屏幕的高度,这个时候其实我还是希望StateView里面的内容在RV剩下的区域居中,并且不能上下滑动。请问有什么好的办法吗?

youlookwhat commented 3 years ago

StateView 设置的布局的高度 是你布局的自身高度,如果你将引入的layout高度写死为50dp,那高度就为50dp。 如果你想StateView里面的内容在RV剩下的区域居中,那么你需要将剩下的高度设置给layout,不能上下滑动你可以禁止上下刷新setRefreshEnabled(false);或上拉加载setLoadMoreEnabled(false);就好了。

简单点说,如果你想达到上述说的需求,你需要: 1.将StateView里面的布局高度设置为RV剩下区域的高度,然后再布局里设置内容居中 2.不能下拉刷新setRefreshEnabled(false); 3.不能加载更多setLoadMoreEnabled(false);

注意在合适的时候将这两个状态设置为 true

bean-liu commented 3 years ago

@youlookwhat 谢谢回复,不过有时候不仅仅是header挤占了StateView的高度,因为RV高度可能也需要变化。比如我RV列表数据在为空的时候RV外层的Linearlayout底部会展开一个推荐广告,这就会导致RV高度产生变化,所以我在想或许在RV内部根据RV和header的高度自行调整StateView的高度,这样使用的的时候就方便了。

youlookwhat commented 3 years ago

在RV内部根据RV和header的高度自行调整StateView的高度 这个需求有点复杂了,而且应该需求量不是特别广,所以建议自己实现。