চেকবক্স ব্যবহারকারীদের একটি তালিকা থেকে এক বা একাধিক আইটেম নির্বাচন করতে দেয়। ব্যবহারকারীকে নিম্নলিখিতগুলি করতে দিতে আপনি একটি চেকবক্স ব্যবহার করতে পারেন:
- একটি আইটেম চালু বা বন্ধ করুন.
- একটি তালিকার একাধিক বিকল্প থেকে নির্বাচন করুন।
- চুক্তি বা স্বীকৃতি নির্দেশ করুন।
অ্যানাটমি
একটি চেকবক্স নিম্নলিখিত উপাদান নিয়ে গঠিত:
- বাক্স : এটি চেকবক্সের জন্য ধারক।
- চেক করুন : এটি একটি ভিজ্যুয়াল সূচক যা দেখায় যে চেকবক্সটি নির্বাচন করা হয়েছে কিনা।
- লেবেল : এটি সেই পাঠ্য যা চেকবক্সের বর্ণনা দেয়।
রাজ্যগুলি
একটি চেকবক্স তিনটি অবস্থার একটিতে হতে পারে:
- অনির্বাচিত : চেকবক্সটি নির্বাচন করা হয়নি। বাক্সটা খালি।
- অনির্দিষ্ট : চেকবক্স একটি অনিশ্চিত অবস্থায় আছে। বাক্সে একটি ড্যাশ রয়েছে।
- নির্বাচিত : চেকবক্স নির্বাচন করা হয়েছে। বাক্সে একটি চেকমার্ক রয়েছে।
নিচের ছবিটি একটি চেকবক্সের তিনটি অবস্থা প্রদর্শন করে।
বাস্তবায়ন
আপনি আপনার অ্যাপে একটি চেকবক্স তৈরি করতে Checkbox
কম্পোজেবল ব্যবহার করতে পারেন। মনে রাখার জন্য কয়েকটি মূল পরামিতি রয়েছে:
-
checked
: বুলিয়ান যা ক্যাপচার করে যে চেকবক্সটি চেক করা হয়েছে বা আনচেক করা আছে কিনা। -
onCheckedChange()
: ব্যবহারকারী চেকবক্সে ট্যাপ করলে অ্যাপটি যে ফাংশনটি কল করে।
নিচের স্নিপেটটি দেখায় কিভাবে Checkbox
কম্পোজেবল ব্যবহার করতে হয়:
@Composable fun CheckboxMinimalExample() { var checked by remember { mutableStateOf(true) } Row( verticalAlignment = Alignment.CenterVertically, ) { Text( "Minimal checkbox" ) Checkbox( checked = checked, onCheckedChange = { checked = it } ) } Text( if (checked) "Checkbox is checked" else "Checkbox is unchecked" ) }
ব্যাখ্যা
এই কোডটি একটি চেকবক্স তৈরি করে যা প্রাথমিকভাবে আনচেক করা হয়। ব্যবহারকারী চেকবক্সে ক্লিক করলে, onCheckedChange
lambda checked
অবস্থা আপডেট করে।
ফলাফল
চেক না করা হলে এই উদাহরণটি নিম্নলিখিত উপাদান তৈরি করে:
এবং এইভাবে চেক করা হলে একই চেকবক্স প্রদর্শিত হয়:
উন্নত উদাহরণ
আপনি কীভাবে আপনার অ্যাপে চেকবক্সগুলি প্রয়োগ করতে পারেন তার আরও জটিল উদাহরণ নিচে দেওয়া হল। এই স্নিপেটে, একটি অভিভাবক চেকবক্স এবং একটি সিরিজ চাইল্ড চেকবক্স রয়েছে৷ ব্যবহারকারী যখন প্যারেন্ট চেকবক্সে ট্যাপ করে, অ্যাপটি সমস্ত চাইল্ড চেকবক্স চেক করে।
@Composable fun CheckboxParentExample() { // Initialize states for the child checkboxes val childCheckedStates = remember { mutableStateListOf(false, false, false) } // Compute the parent state based on children's states val parentState = when { childCheckedStates.all { it } -> ToggleableState.On childCheckedStates.none { it } -> ToggleableState.Off else -> ToggleableState.Indeterminate } Column { // Parent TriStateCheckbox Row( verticalAlignment = Alignment.CenterVertically, ) { Text("Select all") TriStateCheckbox( state = parentState, onClick = { // Determine new state based on current state val newState = parentState != ToggleableState.On childCheckedStates.forEachIndexed { index, _ -> childCheckedStates[index] = newState } } ) } // Child Checkboxes childCheckedStates.forEachIndexed { index, checked -> Row( verticalAlignment = Alignment.CenterVertically, ) { Text("Option ${index + 1}") Checkbox( checked = checked, onCheckedChange = { isChecked -> // Update the individual child state childCheckedStates[index] = isChecked } ) } } } if (childCheckedStates.all { it }) { Text("All options selected") } }
ব্যাখ্যা
এই উদাহরণ থেকে নিম্নলিখিত কয়েকটি পয়েন্ট আপনার নোট করা উচিত:
- রাষ্ট্রীয় ব্যবস্থাপনা :
-
childCheckedStates
: প্রতিটি চাইল্ড চেকবক্সের চেক করা অবস্থা ট্র্যাক করতেmutableStateOf()
ব্যবহার করে বুলিয়ানদের একটি তালিকা। -
parentState
: একটিToggleableState
যার মান চাইল্ড চেকবক্সের অবস্থা থেকে পাওয়া যায়।
-
- UI উপাদান :
-
TriStateCheckbox
: প্যারেন্ট চেকবক্সের জন্য প্রয়োজনীয় কারণ এতে একটিstate
প্যারাম রয়েছে যা আপনাকে এটিকে অনির্ধারিত হিসাবে সেট করতে দেয়। -
Checkbox
: প্রতিটি চাইল্ড চেকবক্সের জন্য ব্যবহার করা হয় যার স্টেটchildCheckedStates
সংশ্লিষ্ট উপাদানের সাথে সংযুক্ত থাকে। -
Text
: লেবেল এবং বার্তাগুলি প্রদর্শন করে ("সমস্ত নির্বাচন করুন", "বিকল্প X", "সমস্ত বিকল্প নির্বাচিত")।
-
- যুক্তি :
- অভিভাবক চেকবক্সের
onClick
বর্তমান অভিভাবক অবস্থার বিপরীতে সমস্ত চাইল্ড চেকবক্স আপডেট করে। - প্রতিটি শিশুর চেকবক্সের
onCheckedChange
childCheckedStates
তালিকায় তার সংশ্লিষ্ট অবস্থা আপডেট করে। - যখন সমস্ত চাইল্ড চেকবক্স চেক করা হয় তখন কোডটি "
All options selected
" প্রদর্শন করে।
- অভিভাবক চেকবক্সের
ফলাফল
এই উদাহরণটি নিম্নলিখিত উপাদান তৈরি করে যখন সমস্ত চেকবক্স অচেক করা হয়।
একইভাবে, যখন সমস্ত বিকল্পগুলি চেক করা হয় তখন এইভাবে উপাদানটি উপস্থিত হয়, যেমন ব্যবহারকারী ট্যাপ করে সমস্ত নির্বাচন করুন:
যখন শুধুমাত্র একটি বিকল্প চেক করা হয় তখন প্যারেন্ট চেকবক্সটি অনির্দিষ্ট অবস্থা প্রদর্শন করে: