BaseBottomSheetDialog中包含RecycleView时,向下滑动时,优先响应的是BaseBottomSheetDialog。RecycleView无法滚动。
只需要在其最外部使用以下自定义控件即可
注意需要根据自己的业务代码,设置recycleView的id
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import com.trs.news.R;
/**
* <pre>
* Created by zhuguohui
* Date: 2023/5/8
* Time: 22:08
* Desc:主要解决滑动冲突
* </pre>
*/
public class CommentLayout extends FrameLayout {
private RecyclerView recyclerView;
public CommentLayout(@NonNull Context context) {
super(context);
}
public CommentLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onStartNestedScroll(View child, View target, int nestedScrollAxes) {
if(recyclerView==null){
recyclerView=findViewById(R.id.recyclerView);
}
if(nestedScrollAxes==2&&recyclerView.canScrollVertically(-1)){
return true;
}
return super.onStartNestedScroll(child, target, nestedScrollAxes);
}
}
通过创建一个名为CommentLayout的自定义FrameLayout,重写onStartNestedScroll方法,优先处理RecycleView的垂直滑动,解决了在BaseBottomSheetDialog中RecycleView无法滚动的问题。需要根据业务代码设置RecycleView的ID。
1769

被折叠的 条评论
为什么被折叠?



