কম্পোজে স্টাইল

জেটপ্যাক কম্পোজে উপাদান এবং উপাদানগুলিকে কাস্টমাইজ বা "স্টাইলিং" করার জন্য স্টাইল এপিআই একটি নতুন দৃষ্টান্ত, যা ঐতিহ্যগতভাবে মডিফায়ারের মাধ্যমে করা হয়ে আসছে। এটি আরও গভীর এবং সহজ কাস্টমাইজেশন আনলক করার জন্য ডিজাইন করা হয়েছে।

স্টাইলস এপিআই ফর্ম ফ্যাক্টর জুড়ে নমনীয়তা উন্নত করে, আরও ভালো কর্মক্ষমতা প্রদান করে এবং সহজে কাস্টম ডিজাইন সিস্টেম তৈরি সক্ষম করে। এমনকি যদি আপনার কাস্টম উপাদানের প্রয়োজন নাও হয়, তবুও স্টাইলস এপিআই আপনার ডিজাইন সিস্টেমের জন্য অনেক সুবিধা প্রদান করে।

একটি গুরুত্বপূর্ণ পার্থক্য হল যে স্টাইলগুলি মডিফায়ারের বিকল্প নয়, তবে তারা স্টাইলিং প্যারামিটারগুলির বিকল্প হিসেবে কাজ করে, যেমন প্যাডিং এবং রঙের জন্য। নমনীয়তা এবং কর্মক্ষমতা বৃদ্ধির জন্য আমরা প্যারামিটারের পরিবর্তে স্টাইল ব্যবহারে রূপান্তর করার পরামর্শ দিই।

স্টাইলের সুবিধা

  • অবস্থা-ভিত্তিক স্টাইলিংকে সরলীকৃত করে: API বিভিন্ন অবস্থার (যেমন, হোভারড, ফোকাসড, প্রেসড) উপর ভিত্তি করে পরিবর্তিত স্টাইলগুলিকে সংজ্ঞায়িত করার জন্য আরও সংক্ষিপ্ত এবং ঘোষণামূলক উপায় প্রদান করে, যা মডিফায়ার সিস্টেমের তুলনায় বয়লারপ্লেট কোডকে উল্লেখযোগ্যভাবে হ্রাস করে।
  • অ্যানিমেটেড স্টেট ট্রানজিশন উন্নত করে: স্টাইল এপিআই আদর্শ কর্মক্ষমতা বৈশিষ্ট্য সহ স্টেটগুলির মধ্যে স্টাইল বৈশিষ্ট্যগুলির অন্তর্নির্মিত অ্যানিমেশনের অনুমতি দেয়, বর্তমান animateColorAsState পদ্ধতির সাথে ঘটে যাওয়া পুনর্গঠন এড়িয়ে।
  • কম্পোনেন্ট API গুলিকে স্ট্রিমলাইন করে: কাস্টমাইজেশনের জন্য একটি একক স্টাইল প্যারামিটার প্রবর্তনের মাধ্যমে, কম্পোনেন্ট API গুলিকে নাটকীয়ভাবে সরলীকৃত করা হয় এবং আরও নমনীয়তা প্রদান করে।
  • মডিফায়ারের তুলনায় কম রিকম্পোজিশনের ফলে ভালো পারফরম্যান্স পাওয়া যায়: স্টাইলগুলি কম্পোজের ড্র এবং লেআউট ফেজে চলে, কম্পোজিশন ফেজ বাদ দেওয়া হয়।
  • আরও মানসম্মত API সেট: স্টাইলিস্টিক বৈশিষ্ট্যের একটি মানসম্মত সেট যেকোনো উপাদানকে স্টাইলযোগ্য করে তোলে।

মূল ধারণা

ধারণা বিবরণ
Style একটি ইন্টারফেস যা একটি UI উপাদানের চেহারা নির্ধারণ করে, স্টাইলযোগ্য বৈশিষ্ট্যের একটি স্ট্যান্ডার্ড সেট সহ। এটি CSS শৈলীর অনুরূপ এবং স্থানীয়ভাবে বা একটি থিমের মাধ্যমে কাস্টমাইজ করা যেতে পারে। শৈলীগুলি একে অপরকে ওভাররাইট করে; একটি বৈশিষ্ট্য দুবার সেট করার ফলে (যেমন, background() ) একটি একক, চূড়ান্ত মান তৈরি হয়।
StyleScope একটি Style এর মধ্যে applyStyle() ফাংশনের জন্য একটি রিসিভার স্কোপ। এটি ভিজ্যুয়াল প্রোপার্টি (প্যাডিং, ব্যাকগ্রাউন্ড, বর্ডার, ইত্যাদি) নির্ধারণ করতে এবং বর্তমান StyleState অ্যাক্সেস করতে ফাংশন প্রদান করে।
StyleState শর্তসাপেক্ষ স্টাইলিং নির্ধারণের জন্য একটি স্টাইলের মধ্যে ব্যবহার করা যেতে পারে এমন স্টেট (যেমন, isEnabled , isPressed , isChecked , কাস্টম স্টেট) প্রদান করে।

শুরু করুন: নির্ভরতা যোগ করুন

আপনার নিজস্ব প্রকল্পে API গুলি ব্যবহার করতে, নিশ্চিত করুন যে আপনি Jetpack Compose ফাউন্ডেশনের সর্বশেষ আলফা রিলিজ ব্যবহার করছেন। আপনার settings.gradle.kts ফাইলে, ব্যবহারের জন্য সংগ্রহস্থলের তালিকায় স্ন্যাপশট ম্যাভেন সংগ্রহস্থল যোগ করুন।

আপনার libs.versions.toml অথবা সরাসরি আপনার app/build.gradle.kts ফাইলে, Compose এর সংস্করণটি 1.11.0-alpha06 এ সেট করুন:

compose = "1.11.0-alpha06"
androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime", version.ref = "compose" }
androidx-compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "compose" }
androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics", version.ref = "compose" }
androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "compose" }
androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview", version.ref = "compose" }
androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest", version.ref = "compose" }
androidx-compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4", version.ref = "compose" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation", version.ref = "compose" }