我想在recyclerview向上和向下滚动一段距离时显示并隐藏按钮(按钮的高度)我已经编写了一些代码,但它没有按预期工作
@Override
public void onScrolled(RecyclerView view, int dx, int dy) {
super.onScrolled(view, dx, dy);
if (verticalOffset > floatingActionMenu.getHeight() && dy > 0) {
floatingActionMenu.setVisibility(View.VISIBLE);
} else {
floatingActionMenu.setVisibility(View.GONE);
}
verticalOffset += dy;
}
答案 0 :(得分:0)
尝试实现onScrollStateChange。
我的草稿看起来像这样。
(DateTime.Now.AddDays(1) - DateTime.Now).TotalDays
根据您 int distance =0;
int scrollDirection;
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
scrollDirection = dy;
distance+=dy;
Log.d("TAG", "onScrolled: " + dy);
}
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
if (scrollDirection > 0) {
Log.d("TAG", "onScrollStateChanged: " + " STOPPED " + distance);
distance = 0;
} else {
Log.d("TAG", "onScrollStateChanged: " + " STOPPED " + distance);
distance = 0;
}
}
}
中的最终distance
值,您可以指望隐藏按钮。我应该告诉您,您还必须在onScrollStateChange
中隐藏/显示您的FAB吗?