当 recyclerView 滚动到第一个或最后一个位置时,我想显示一个按钮我怎么做?

问题描述

实际上,我在fragment的顶部和底部放了两个按钮,当recyclere滚动时,用户用这两个按钮移动到第一个和最后一个位置。 这两个按钮最初是隐藏的。当接收器滚动时,两者都会显示。当接收器返回到第一个位置时,向上按钮隐藏而向下按钮显示,反之亦然,当滚动到最后一个位置时,向下按钮也隐藏。 我滚动浏览手机上安装的软件列表。

  1. 一个问题是按钮没有按照上述条件隐藏

  2. 当我想非常慢地滚动时,项目会振动和滞后很多,但是当我快速滚动时,这不是问题。我该如何解决这个延迟问题?

    在此处输入代码

     recyclerAppList.addOnScrollListener(new RecyclerView.OnScrollListener() {
         @Override
         public void onScrollStateChanged(@NonNull RecyclerView recyclerView,int newState) {
             super.onScrollStateChanged(recyclerView,newState);
    
         }
    
         @Override
         public void onScrolled(@NonNull RecyclerView recyclerView,int dx,int dy) {
             super.onScrolled(recyclerView,dx,dy);
             // Scroll Up
             if (dy >0) {
                 int position = appslistadapter.getPosition();
                 if (position==0){
                     imgGoUp.setVisibility(View.GONE);
                 } else {
                     imgGoUp.setVisibility(View.VISIBLE);
                 }
                 if (toolbar.getVisibility()== View.VISIBLE){
                     toolbar.setVisibility(View.GONE);
                     YoYo.with(Techniques.FadeInUp)
                             .playOn(toolbar);
                 }
             }
    
             // Scroll Down
             else if (dy <0) {
                 int position = appslistadapter.getPosition();
                 if (position==appsInfoList1.size()-1){
                     imgGodown.setVisibility(View.GONE);
                 } else {
                     imgGodown.setVisibility(View.VISIBLE);
                 }
                 if (toolbar.getVisibility()==View.GONE){
                     toolbar.setVisibility(View.VISIBLE);
                     YoYo.with(Techniques.FadeInDown)
                             .duration(400)
                             .playOn(toolbar);
                 }
             }
         }
     });
    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)