Hello All I have just created a demo to work with new android L widget RecyclerView.I have also implemented Pull-To-Refresh using SwipeRefreshLayout but problem for me now is how can I implement sticky header here,Because when i try to set
mRecyclerView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrolled(int arg0, int arg1) {
}
@Override
public void onScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
I get only these 2 methods so dont have any idea how can I handle this...
Please help..
Since the previous answers don't provide a reliable solution, I propose my FlexibleAdapter library for RecyclerView, that is able to handle all following functionalities at once:
The idea behind is to avoid to create from scratch over again a custom Adapter for every project and to have more functionalities in one library, instead of relying on different libraries that support only 1 or 3 of them and that you cannot merge.
public void onScrolled(int dx, int dy)
those are the two arguments that you're receiving onScrolled
, that means, the number of pixels that the RecyclerView changed on the X and Y axis... so probably all you want to do is:
@Override
public void onScrolled(int dx, int dy) {
if(dx < 0) // going up
showSitckyHeader();
}
you can probably further improve this implementation by adding a minimum scroll amount. Something like:
int totalScrolled = 0;
@Override
public void onScrolled(int dx, int dy) {
totalScrolled += dx;
if(totalScrolled < MIN_SCROLL)
showSitckyHeader();
if(dx > 0)
totalScrolled = 0;
}
@Override
public void onScrollStateChanged(int newState) {
if(newState == SCROLL_STATE_IDLE || newState = SCROLL_STATE_SETTLING)
totalScrolled = 0;
}
or even go further and implement speed, counting time, but those types of implementation are more tricky, and you have to test it yourself.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With