0

你好! 我的 bottomSheet 包括 RecyclerView(Compose LazyColumn)。所以当我想向上滚动时,我的底部工作表会尝试关闭,而不是滚动我的列表。我如何固定bottomSheetDialogFragment,如果我使用compose,我不能使用nestedScrollview 和recycler。这是我的示例代码

@ExperimentalFoundationApi
@Composable
fun TimePickerView(
    hours: List<String>,
    minutes: List<String>,
    weekDays: List<String>?,
    hoursListState: LazyListState = rememberLazyListState(),
    minutesListState: LazyListState = rememberLazyListState(),
    dayListState: LazyListState = rememberLazyListState(),
) {
    LazyColumn(content = {
        stickyHeader {
            InteractButton(
                hoursListState,
                minutesListState,
                dayListState
            )
        }
        item {
            TimePickerViewImpl(
                hours = hours,
                minutes = minutes,
                weekDays = weekDays,
                hoursListState,
                minutesListState,
                dayListState
            )
        }
    })
}

以及我如何调用它

class TimePickerDialogFragment : BottomSheetDialogFragment() {
    private lateinit var hours: List<String>
    private lateinit var minutes: List<String>
    private var weekDays: List<String>? = null

    private lateinit var timePickerViewModel: TimePickerViewModel
    
    @ExperimentalFoundationApi
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        timePickerViewModel = ViewModelProvider(this).get(TimePickerViewModel::class.java)
        val typeSchedule = arguments?.get(MedicineTakenScreenActivity.EXTRA_SCHEDULE_TYPE)!!
        hours = timePickerViewModel.hours
        minutes = timePickerViewModel.minutes
        if (typeSchedule == getString(R.string.weekly)) {
            weekDays = timePickerViewModel.weekDays
        }

        return ComposeView(requireContext())
            .apply {
                this.setContent {
                    TimePickerView(
                        hours = hours,
                        minutes = minutes,
                        weekDays = weekDays,
                    )
                }
            }
    }

    companion object {
        @JvmStatic
        fun newInstance(bundle: Bundle?): TimePickerDialogFragment {
            val fragment = TimePickerDialogFragment()
            fragment.arguments = bundle
            return fragment
        }
    }
}

我想通常在底页内滚动我的列表,而不关闭我的底页。

4

0 回答 0