【发布时间】:2020-01-17 22:02:05
【问题描述】:
我试图仅在 Recycler 视图向下滚动时显示一个浮动操作按钮,并在位置位于最顶部时隐藏。对不起,我的英语很糟糕
【问题讨论】:
我试图仅在 Recycler 视图向下滚动时显示一个浮动操作按钮,并在位置位于最顶部时隐藏。对不起,我的英语很糟糕
【问题讨论】:
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx,int dy){
super.onScrolled(recyclerView, dx, dy);
if (dy >0) {
// Scroll Down
if (fab.isShown()) {
fab.hide();
}
}
else if (dy <0) {
// Scroll Up
if (!fab.isShown()) {
fab.show();
}
}
}
})
【讨论】:
这里你可以做些什么来识别滚动状态
recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (!recyclerView.canScrollVertically(1) && newState==RecyclerView.SCROLL_STATE_IDLE) {
//do what you want if recyclerview scrolled to bottom
}else{
//do what you want if recyclerview not scrolled to bottom
}
}
});
【讨论】:
为 recylerview 添加滚动监听器并在滚动时隐藏 fab
fun hideFabWhenScroll(fab: FloatingActionButton, recyclerView: RecyclerView){
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
if (dy > 0 || dy < 0 && fab.isShown) {
fab.hide()
}
}
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
fab.show()
}
super.onScrollStateChanged(recyclerView, newState)
}
})
}
【讨论】: