RecycleView最佳实践-横向,竖向滑动,瀑布流

本文介绍了RecycleView的使用,包括横向、竖向滑动和瀑布流布局的实现。首先在项目gradle中添加依赖,接着定义一个适配器,该适配器需继承RecyclerView.Adapter并指定泛型。通过对RecycleView的配置,可以实现各种滑动效果。
摘要由CSDN通过智能技术生成

代码

  1. 首先在gradle中添加依赖
dependencies {
    ...
    implementation 'androidx.recyclerview:recyclerview:1.0.0'
}

  1. 定义一个适配器
    需要继承自RecyclerView.Adapter<FruitAdapter.ViewHolder>,传入泛型类型。
public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {
    private List<Fruit> fruitList;

    static class ViewHolder extends RecyclerView.ViewHolder {
        ImageView fruitImage;
        TextView fruitName;
        View fruitView;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            fruitView = itemView;
            fruitImage = itemView.findViewById(R.id.fruit_image);
            fruitName = itemView.findViewById(R.id.fruit_name);
        }
    }
    public FruitAdapter(List<Fruit> fruitList) {
        this.fruitList = fruitList;
    }
    
    @NonNull
    @Overri
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现RecycleView滑动到底部后,向下滑动连带BottomSheet一起滑动,可以使用RecyclerView的addOnScrollListener监听RecycleView滑动,当滑动到底部时,再使用BottomSheetBehavior将BottomSheet一起滑动。 具体实现步骤如下: 1. 获取BottomSheetBehavior对象: ```java BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet); ``` 2. 在RecyclerView中添加滑动监听器: ```java recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); int lastVisiblePosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findLastVisibleItemPosition(); int totalCount = recyclerView.getLayoutManager().getItemCount(); if (lastVisiblePosition == totalCount - 1 && dy > 0) { // 滑动到底部,向下滑动BottomSheet behavior.setState(BottomSheetBehavior.STATE_EXPANDED); } } }); ``` 3. 在BottomSheet中添加状态监听器,并在状态为STATE_EXPANDED时禁止RecyclerView滑动: ```java behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { if (newState == BottomSheetBehavior.STATE_EXPANDED) { // 禁止RecyclerView滑动 recyclerView.stopScroll(); } } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { } }); ``` 这样,当RecyclerView滑动到底部时,向下滑动BottomSheet就会连带滑动了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值