I implemented BottomSheet using the DialogFragment approach. I have a TabLayout and ViewPager in the BottomSheet
I had the same issue, to fix this without the need to override BottomSheetBehavior or the need of an additional library you can to the following: Implement a callback inside your bottom sheet implementation that registers changes of the page.
fun onPageChanged(currentPage: Int) {
recycler1.isNestedScrollingEnabled = currentPage == 0
recycler2.isNestedScrollingEnabled = currentPage == 1
dialog?.findViewById(R.id.design_bottom_sheet)?.requestLayout()
}
In the BottomSheetBehavior implementation in onLayoutChild a lookup for the first child that supports nested scrolling is performed, with this change the lookup is repeated. Not optimal solution but works fine in my case