আপনি স্ক্রিনের নিচে অ্যাটাচ করা শিট প্রয়োগ করতে চাইলে,
ModalBottomSheet কম্পোজেবল ব্যবহার করতে পারবেন।
আপনি content স্লট ব্যবহার করতে পারেন, যা একটি কলামে শিট কন্টেন্ট কম্পোজেবল লেআউট করতে ColumnScope ব্যবহার করে:
ModalBottomSheet(onDismissRequest = { /* Executed when the sheet is dismissed */ }) { // Sheet content }
প্রোগ্রাম্যাটিক্যালি শিটের স্ট্যাটাস নিয়ন্ত্রণ করুন
প্রোগ্রাম্যাটিক্যালি শিট বড় ও ছোট করতে,
SheetState ব্যবহার করুন। আপনি SheetState-এর একটি ইনস্ট্যান্স তৈরি করতে
rememberModalBottomSheetState ব্যবহার করতে পারেন যা 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") } } } }