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>