Вот мой файл макета, который я использую для своего BottomSheetDialogFragment (text.xml):< /p>
Код: Выделить всё
Код: Выделить всё
class TestBottomSheet: BottomSheetDialogFragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.test, container, false)
}
override fun onViewCreated(
view: View,
savedInstanceState: Bundle?
) {
super.onViewCreated(view, savedInstanceState)
val behavior = BottomSheetBehavior.from(requireView().parent as View)
behavior.peekHeight = resources.displayMetrics.heightPixels / 2
behavior.isHideable = true
behavior.isDraggable = true
behavior.state = BottomSheetBehavior.STATE_HALF_EXPANDED
}
}
Код: Выделить всё
private val onButtonClick = View.OnClickListener {
val bottomSheetFragment = TestBottomSheet()
bottomSheetFragment.show(supportFragmentManager, "BottomSheetDialog")
}
Когда «behavior.state = BottomSheetBehavior.STATE_HALF_EXPANDED»

Когда "behavior.state = BottomSheetBehavior.STATE_EXPANDED"< /p>

Я также попробовал обернуть свой test.xml в координаторLayout с тем же результатом. Я хотел бы, чтобы красный фон заполнял половину экрана с текстовым представлением по центру, поскольку конечный результат этого BottomSheetDialogFragment будет иметь переменное содержимое, которое может занимать больше или меньше половины размера экрана, но BottomSheetDialogFragment всегда должен занять половину экрана с возможностью при желании перетащить его на весь экран.
Подробнее здесь: https://stackoverflow.com/questions/783 ... ps-content
Мобильная версия