ব্যবহারকারীদের পাশাপাশি বিকল্পের সেট থেকে বেছে নিতে দেওয়ার জন্য সেগমেন্ট করা বোতাম ব্যবহার করুন। দুই ধরনের সেগমেন্ট করা বোতাম আছে:
- সিঙ্গেল-সিলেক্ট বোতাম: ব্যবহারকারীদের একটি বিকল্প বেছে নিতে দেয়।
- একাধিক আইটেম বেছে নেওয়ার বোতাম: ব্যবহারকারীদের দুই থেকে পাঁচটি আইটেম বেছে নিতে দেয়। আরও জটিল পছন্দ বা পাঁচটির বেশি আইটেমের জন্য চিপ ব্যবহার করুন।
API সারফেস
সেগমেন্ট করা বোতাম তৈরি করতে 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তৈরি করে:shapeSegmentedButtonDefaults.itemShapeব্যবহার করে বোতামের ইন্ডেক্স ও বিকল্পের মোট সংখ্যার উপর ভিত্তি করে বোতামের আকার নির্ধারণ করে।onClickক্লিক করা বোতামের ইন্ডেক্স সহselectedIndexআপডেট করে।selected,selectedIndex-এর উপর ভিত্তি করে বোতামের বেছে নেওয়ার স্ট্যাটাস সেট করে।label,Textকম্পোজ করার উপযুক্ত আইটেম ব্যবহার করে বোতামের লেবেল দেখায়।
ফলাফল
একাধিক বিকল্প বেছে নেওয়ার জন্য সেগমেন্টেড বোতাম তৈরি করুন
এই উদাহরণে দেখানো হয়েছে যে কীভাবে আইকন সহ মাল্টি-চয়েস সেগমেন্টেড বোতাম তৈরি করতে হয়, যা ব্যবহারকারীদের একাধিক বিকল্প বেছে নিতে দেয়:
@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( painter = rememberVectorPainter(AppIcons.DirectionsWalk), contentDescription = "Directions Walk" ) "Ride" -> Icon( painter = rememberVectorPainter(AppIcons.DirectionsBus), contentDescription = "Directions Bus" ) "Drive" -> Icon( painter = rememberVectorPainter(AppIcons.DirectionsCar), contentDescription = "Directions Car" ) } } ) } } }
কোড সম্পর্কে গুরুত্বপূর্ণ পয়েন্ট
- কোডটি
rememberএবংmutableStateListOfব্যবহার করেselectedOptionsভেরিয়েবল শুরু করে। এটি প্রতিটি বোতামের বেছে নেওয়া স্ট্যাটাস ট্র্যাক করে। - বোতামগুলি রাখার জন্য কোডটি
MultiChoiceSegmentedButtonRowব্যবহার করে। forEachIndexedলুপের মধ্যে, কোডটি প্রতিটি বিকল্পের জন্য একটিSegmentedButtonতৈরি করে:shapeবোতামের ইন্ডেক্স ও মোট বিকল্পের সংখ্যার উপর ভিত্তি করে বোতামের আকার নির্ধারণ করে।checked,selectedOptions-এ সংশ্লিষ্ট মানের উপর ভিত্তি করে বোতামের চেক করা স্ট্যাটাস সেট করে।- বোতামে ক্লিক করা হলে,
onCheckedChangeসংশ্লিষ্ট আইটেমের বেছে নেওয়া স্ট্যাটাসselectedOptions-এ টগল করে। icon,SegmentedButtonDefaults.Iconএবং বোতামের চেক করা অবস্থার উপর ভিত্তি করে একটি আইকন দেখায়।label,Iconকম্পোজেবল ব্যবহার করে লেবেলের সাথে সম্পর্কিত আইকন দেখায় যেখানে উপযুক্ত ইমেজ ভেক্টর ও কন্টেন্টের বিবরণ থাকে।
ফলাফল
অতিরিক্ত রিসোর্স
- Material 3: সেগমেন্টেড বোতাম