ব্যবহারকারীদের পাশাপাশি থাকা একাধিক বিকল্প থেকে বেছে নেওয়ার সুযোগ দিতে একটি সেগমেন্টেড বাটন ব্যবহার করুন। সেগমেন্টেড বাটন দুই প্রকারের হয়:
- একক-নির্বাচন বোতাম : ব্যবহারকারীদের একটি বিকল্প বেছে নিতে দেয়।
- মাল্টি-সিলেক্ট বাটন : এর মাধ্যমে ব্যবহারকারীরা দুই থেকে পাঁচটি আইটেম বেছে নিতে পারেন। আরও জটিল বিকল্প বা পাঁচটির বেশি আইটেমের জন্য চিপ ব্যবহার করুন।

এপিআই পৃষ্ঠ
সেগমেন্টেড বাটন তৈরি করতে SingleChoiceSegmentedButtonRow এবং MultiChoiceSegmentedButtonRow লেআউটগুলো ব্যবহার করুন। এই লেআউটগুলো SegmentedButton গুলোকে সঠিকভাবে অবস্থান ও আকার দেয় এবং নিম্নলিখিত মূল প্যারামিটারগুলো শেয়ার করে:
-
space: বাটনগুলোর মধ্যকার ওভারল্যাপ সমন্বয় করে। -
content: এতে সেগমেন্টেড বাটন সারির বিষয়বস্তু থাকে, যা সাধারণত একাধিকSegmentedButtonএর একটি অনুক্রম।
একটি একক-নির্বাচন সেগমেন্টেড বাটন তৈরি করুন
এই উদাহরণটি দেখায় কিভাবে একটি সিঙ্গেল-সিলেক্ট সেগমেন্টেড বাটন তৈরি করতে হয়:
@Composable fun SingleChoiceSegmentedButton(modifier: Modifier = Modifier) { var selectedIndex by remember { mutableIntStateOf(0) } val options = listOf("Day", "Month", "Week") SingleChoiceSegmentedButtonRow { options.forEachIndexed { index, label -> SegmentedButton( shape = SegmentedButtonDefaults.itemShape( index = index, count = options.size ), onClick = { selectedIndex = index }, selected = index == selectedIndex, label = { Text(label) } ) } } }
কোড সম্পর্কে মূল বিষয়গুলো
- নির্বাচিত বাটনের ইন্ডেক্স ট্র্যাক করার জন্য
rememberএবংmutableIntStateOfব্যবহার করে একটিselectedIndexভেরিয়েবল ইনিশিয়ালাইজ করা হয়। - বাটনের লেবেলগুলো উপস্থাপনকারী
optionsএকটি তালিকা নির্ধারণ করে। -
SingleChoiceSegmentedButtonRowআপনাকে শুধুমাত্র একটি বাটন নির্বাচন করার সুযোগ দেয়। -
forEachIndexedলুপের ভিতরে প্রতিটি অপশনের জন্য একটি করেSegmentedButtonতৈরি করে:-
SegmentedButtonDefaults.itemShapeব্যবহার করে, `shapeবাটনের ইনডেক্স এবং মোট অপশনের সংখ্যার উপর ভিত্তি করে বাটনের আকৃতি নির্ধারণ করে। -
onClickফাংশনটি ক্লিক করা বাটনের ইনডেক্স দিয়েselectedIndexআপডেট করে। -
selectedIndexএর উপর ভিত্তি করে বাটনটির নির্বাচন অবস্থাselectedকরে। -
labelTextকম্পোজেবল ব্যবহার করে বাটনের লেবেল প্রদর্শন করে।
-
ফলাফল

একটি মাল্টি-সিলেক্ট সেগমেন্টেড বাটন তৈরি করুন
এই উদাহরণটি দেখায় কিভাবে আইকনসহ একটি বহু-বিকল্পযুক্ত সেগমেন্টেড বাটন তৈরি করতে হয়, যা ব্যবহারকারীদের একাধিক বিকল্প নির্বাচন করার সুযোগ দেয়:
@Composable fun MultiChoiceSegmentedButton(modifier: Modifier = Modifier) { val selectedOptions = remember { mutableStateListOf(false, false, false) } val options = listOf("Walk", "Ride", "Drive") MultiChoiceSegmentedButtonRow { options.forEachIndexed { index, label -> SegmentedButton( shape = SegmentedButtonDefaults.itemShape( index = index, count = options.size ), checked = selectedOptions[index], onCheckedChange = { selectedOptions[index] = !selectedOptions[index] }, icon = { SegmentedButtonDefaults.Icon(selectedOptions[index]) }, label = { when (label) { "Walk" -> Icon( imageVector = Icons.AutoMirrored.Filled.DirectionsWalk, contentDescription = "Directions Walk" ) "Ride" -> Icon( imageVector = Icons.Default.DirectionsBus, contentDescription = "Directions Bus" ) "Drive" -> Icon( imageVector = Icons.Default.DirectionsCar, contentDescription = "Directions Car" ) } } ) } } }
কোড সম্পর্কে মূল বিষয়গুলো
- কোডটি
rememberএবংmutableStateListOfব্যবহার করেselectedOptionsভেরিয়েবলটি ইনিশিয়ালাইজ করে। এটি প্রতিটি বাটনের নির্বাচিত অবস্থা ট্র্যাক করে। - কোডটিতে বাটনগুলোকে ধারণ করার জন্য
MultiChoiceSegmentedButtonRowব্যবহার করা হয়েছে। -
forEachIndexedলুপের ভিতরে, কোডটি প্রতিটি অপশনের জন্য একটি করেSegmentedButtonতৈরি করে:-
shapeবাটনটির ইন্ডেক্স এবং অপশনগুলোর মোট সংখ্যার উপর ভিত্তি করে এর আকৃতি নির্ধারণ করে। -
checkedবিকল্পটিselectedOptionsএ থাকা সংশ্লিষ্ট মানের উপর ভিত্তি করে বাটনটির চেক্ট অবস্থা নির্ধারণ করে। -
onCheckedChangeবাটনটি ক্লিক করা হলেselectedOptionsএর সংশ্লিষ্ট আইটেমটির নির্বাচিত অবস্থা পরিবর্তন করে। -
iconSegmentedButtonDefaults.Iconএবং বাটনটির চেক্ট অবস্থার উপর ভিত্তি করে একটি আইকন প্রদর্শন করে। -
labelউপযুক্ত ইমেজ ভেক্টর এবং বিষয়বস্তুর বিবরণসহIconকম্পোজেবল ব্যবহার করে লেবেলটির সাথে সঙ্গতিপূর্ণ একটি আইকন প্রদর্শন করে।
-
ফলাফল

অতিরিক্ত সম্পদ
- উপাদান ৩: খণ্ডিত বোতাম