Aspsine / IRecyclerView

IRecyclerView is a custom RecyclerView that supports pull-to-refresh, pull-to-loadmore, customize refresh header and loadmore footer, add header views and footer views.
729 stars 146 forks source link

RecycleView 24.2.0 LinearLayout.scrollToPositionWithOffset 一开始设置没用,想隐藏头部 #25

Closed Dimon94 closed 7 years ago

Dimon94 commented 7 years ago

在RecycleView 24.2.0中 LinearLayout.scrollToPositionWithOffset 一开始设置没用,需要延时几秒才能完成scrollToPositionWithOffset 。但是我想一开始界面绘制完就调用挪到特定item上。还有,请问有工具类可以实现主动隐藏头部么?还有就是一开始就是隐藏头部,下拉就出现,像下拉刷新那样的头部,如何实现了?

Aspsine commented 7 years ago

下面的方法只有当RecyclerView的子view足够多,RecyclerView可以滚动时才有用。

recyclerView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
    @Override
    public boolean onPreDraw() {
        finalRecyclerView.getViewTreeObserver().removeOnPreDrawListener(this);
        if (recyclerView.getAdapter().getItemCount()>2) {
            recyclerView.scrollToPosition(2);
        }
    }
};

如果想在recyclerView不能滚动的时候隐藏头部,下拉时出现。我提供几个思路。 1.IRecyclerView refresh header的方案,layout的时候把view的高度设置为0,下拉的过程中逐渐增加view高度。 2.nested scroll 3.在RecyclerView中初始化一个height足够高的子view,让recycler view可以滚动。(借助于adapter中的多type可以实现)