
যদি আপনি একটি বটম শিট বাস্তবায়ন করতে চান, তাহলে আপনি ModalBottomSheet কম্পোজেবল ব্যবহার করতে পারেন।
আপনি content স্লট ব্যবহার করতে পারেন, যা একটি কলামে শীট কন্টেন্ট কম্পোজেবল লেআউট করার জন্য একটি ColumnScope ব্যবহার করে:
ModalBottomSheet(onDismissRequest = { /* Executed when the sheet is dismissed */ }) { // Sheet content }
প্রোগ্রাম্যাটিকভাবে নিয়ন্ত্রণ শীট অবস্থা
প্রোগ্রাম্যাটিকভাবে শীটটি প্রসারিত এবং আড়াল করতে, SheetState ব্যবহার করুন। আপনি rememberModalBottomSheetState ব্যবহার করে SheetState এর একটি ইনস্ট্যান্স তৈরি করতে পারেন যা sheetState প্যারামিটারের সাহায্যে ModalBottomSheet এ পাস করতে হবে। SheetState show এবং hide ফাংশনগুলিতে অ্যাক্সেস প্রদান করে, সেইসাথে বর্তমান শীট স্টেটের সাথে সম্পর্কিত বৈশিষ্ট্যগুলিতেও। এই সাসপেন্ডিং ফাংশনগুলির জন্য একটি CoroutineScope প্রয়োজন — উদাহরণস্বরূপ, rememberCoroutineScope ব্যবহার করে — এবং আপনি UI ইভেন্টের প্রতিক্রিয়ায় এগুলি কল করতে পারেন। নীচের শীটটি লুকানোর পরে ModalBottomSheet কম্পোজিশন থেকে সরিয়ে ফেলতে ভুলবেন না।
val sheetState = rememberModalBottomSheetState() val scope = rememberCoroutineScope() var showBottomSheet by remember { mutableStateOf(false) } Scaffold( floatingActionButton = { ExtendedFloatingActionButton( text = { Text("Show bottom sheet") }, icon = { Icon(Icons.Filled.Add, contentDescription = "") }, onClick = { showBottomSheet = true } ) } ) { contentPadding -> // Screen content if (showBottomSheet) { ModalBottomSheet( onDismissRequest = { showBottomSheet = false }, sheetState = sheetState ) { // Sheet content Button(onClick = { scope.launch { sheetState.hide() }.invokeOnCompletion { if (!sheetState.isVisible) { showBottomSheet = false } } }) { Text("Hide bottom sheet") } } } }
