When RecyclerView slides, it imitates the ranking list to automatically display and hide its own ranking

Similar to the ranking version in Figure 1, the bottom 21 is your own ranking, and then when you slide to 21, it becomes Figure 2.

Above code:

Guide package:

//adapter framework

implementation “com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.47”,

TestActivity.java:
package com.example.mine.activity;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;

import com.chad.library.adapter.base.BaseQuickAdapter;
import com.example.http.base.BaseViewJavaModel;
import com.example.mine.R;
import com.example.mine.adapter.LeagueAdapter;
import com.example.mine.bean.LeagueBean;
import com.example.mine.databinding.ActivityProfitsBinding;
import com.example.mine.databinding.ActivityTestBinding;
import com.example.mine.databinding.ItemLeagueBinding;
import com.example.view.base.BaseBindViewHolder;
import com.example.view.base.BaseJavaActivity;

import java.util.ArrayList;
import java.util.List;

public class TestActivity extends BaseJavaActivity<ActivityTestBinding, BaseViewJavaModel> {

    private LeagueAdapter leagueAdapter;

    private boolean isFirst = true;

    @Override
    protected void initListener() {
        binding.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                LinearLayoutManager layoutManager = (LinearLayoutManager) binding. recyclerView. getLayoutManager();
                if (layoutManager!=null){

                    int lastVisibleItemPosition = layoutManager.findLastVisibleItemPosition();//The last visible item on the current page
                    int s = Integer.parseInt(binding.mineTvRanking.getText().toString());
                    if (lastVisibleItemPosition!=0 & amp; & amp; s>3){
                        if (dy == 0 & amp; & amp; lastVisibleItemPosition>(s-3) & amp; & amp; isFirst){
                            binding.mineLlBottom.setVisibility(View.GONE);
                            leagueAdapter. notifyItemChanged(s-3);
                            isFirst = false;
                        }
                        if (lastVisibleItemPosition >= (s-3)){//The number is greater than the current last item
                            binding.mineLlBottom.setVisibility(View.GONE);
                            if (lastVisibleItemPosition == (s-3)){
                                leagueAdapter. notifyItemChanged(s-3);
                            }
                        } else {
                            binding.mineLlBottom.setVisibility(View.VISIBLE);
                        }

                    }
                }
            }
        });
    }

    @Override
    protected BaseViewJavaModel initViewModel() {
        return null;
    }

    @Override
    protected boolean isARouterInject() {
        return false;
    }

    @Override
    protected boolean useEventBus() {
        return false;
    }

    @Override
    public int getLayoutId() {
        return R.layout.activity_test;
    }

    @Override
    public void initData() {
        binding.recyclerView.setNestedScrollingEnabled(false);
        binding.recyclerView.setLayoutManager(new LinearLayoutManager(this));
        List<LeagueBean> list = new ArrayList<>();
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        list.add(new LeagueBean());
        binding.recyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
        leagueAdapter = new LeagueAdapter(list);
        binding.recyclerView.setAdapter(leagueAdapter);
        View head = LayoutInflater.from(this).inflate(R.layout.fragment_league_head, null);
        leagueAdapter. addHeaderView(head);
    }
    class LeagueAdapter extends BaseQuickAdapter<LeagueBean, BaseBindViewHolder> {


        public LeagueAdapter( @Nullable List<LeagueBean> data) {
            super(R. layout. item_league, data);
        }

        @Override
        protected void convert(@NonNull BaseBindViewHolder helper, LeagueBean item) {
            ItemLeagueBinding itembinding = (ItemLeagueBinding) helper. getBinding();
            itembinding.mineTvPosition.setText(helper.getAbsoluteAdapterPosition() + 3 + "");
        }
    }
}

activity_test.xml:
<?xml version="1.0" encoding="utf-8"?>
<layout>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <androidx.recyclerview.widget.RecyclerView
            android:id="@ + id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginStart="10dp"
            android:layout_marginEnd="10dp"/>
        <LinearLayout
            android:id="@ + id/mine_ll_bottom"
            android:background="#FFF5EE"
            android:layout_alignParentBottom="true"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:paddingTop="10dp"
            android:paddingBottom="10dp"
            android:gravity="center_vertical">
            <TextView
                android:id="@ + id/mine_tv_ranking"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="18dp"
                android:textColor="#999999"
                android:text="21"/>
            <ImageView
                android:layout_width="@dimen/dp_30"
                android:layout_height="@dimen/dp_30"
                android:layout_marginStart="15dp"
                android:src="@mipmap/iv_head"
                android:contentDescription="@string/app_name"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="10dp"
                android:textColor="@color/c_333333"
                android:text="The child is not a fish, nor me"/>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginEnd="10dp"
                android:text="49,100"
                android:textColor="@color/color_f57f4b"
                android:gravity="end"/>
        </LinearLayout>
    </RelativeLayout>
</layout>
fragment_league_head.xml:
<?xml version="1.0" encoding="utf-8"?>
<layout>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@mipmap/league_bg"
            android:orientation="vertical">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="@dimen/dp_20"
                android:textSize="@dimen/sp_20"
                android:textColor="@color/white"
                android:text="Top.100 Fortune Iron Army"/>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:layout_marginTop="@dimen/dp_70"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">
                    <ImageView
                        android:layout_width="@dimen/dp_80"
                        android:layout_height="@dimen/dp_80"
                        android:contentDescription="@string/app_name"
                        android:src="@mipmap/iv_head"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:contentDescription="@string/app_name"
                        android:src="@mipmap/tj_second"
                        android:layout_marginTop="-10dp"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="@color/c_333333"
                        android:textSize="16sp"
                        android:layout_marginTop="10dp"
                        android:text="An Zhiruo Su"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="@color/color_f57f4b"
                        android:textSize="14sp"
                        android:layout_marginTop="2dp"
                        android:text="64,493"/>
                </LinearLayout>
                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:layout_marginTop="@dimen/dp_20"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">
                    <ImageView
                        android:layout_width="@dimen/dp_100"
                        android:layout_height="@dimen/dp_100"
                        android:contentDescription="@string/app_name"
                        android:src="@mipmap/iv_head"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:contentDescription="@string/app_name"
                        android:src="@mipmap/tj_first"
                        android:layout_marginTop="-10dp"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="@color/c_333333"
                        android:textSize="16sp"
                        android:layout_marginTop="10dp"
                        android:text="An Zhiruo Su"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="@color/color_f57f4b"
                        android:textSize="14sp"
                        android:layout_marginTop="2dp"
                        android:text="64,493"/>
                </LinearLayout>
                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:layout_marginTop="@dimen/dp_100"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">
                    <ImageView
                        android:layout_width="@dimen/dp_60"
                        android:layout_height="@dimen/dp_60"
                        android:contentDescription="@string/app_name"
                        android:src="@mipmap/iv_head"/>
                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:contentDescription="@string/app_name"
                        android:src="@mipmap/tj_third"
                        android:layout_marginTop="-10dp"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="@color/c_333333"
                        android:textSize="16sp"
                        android:layout_marginTop="10dp"
                        android:text="An Zhiruo Su"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="@color/color_f57f4b"
                        android:textSize="14sp"
                        android:layout_marginTop="2dp"
                        android:text="64,493"/>
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
</layout>