直接上代码地址
主要实现NestedScrollview属性
//属性允许ScrollView中的组件填充满 android:fillViewport="true"
布局文件代码
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/snr_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
主要RecyclerView实现
//当我们确定Item的改变不会影响RecyclerView的宽高的时候可以设置setHasFixedSize(true) mRecyclerview.setHasFixedSize(false); //RecyclerView嵌套滚动启动效果设置为false mRecyclerview.setNestedScrollingEnabled(false);
业务代码
mRecyclerview = findViewById(R.id.snr_recycler_view);
//数据,一般从后台通过网络请求到
list = new ArrayList<entity>();
for (int i = 0; i < 15; i++) {
list.add(new entity("Wade", "James", "Kobe"));
}
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
mRecyclerview.setLayoutManager(layoutManager);
mRecyclerview.setHasFixedSize(false);//重点
mRecyclerview.setNestedScrollingEnabled(false);//重点
//创建recyclerView的实例,并将数据传输到适配器
sheetAdapter = new SheetAdapter(list);
mRecyclerview.setAdapter(sheetAdapter);