Jetpack Compose Text-এ ফাইন-গ্রেন ইন্টার্যাক্টিভিটি চালু করে। টেক্সট বেছে নেওয়ার সুবিধা
এখন আরও ফ্লেক্সিবল এবং কম্পোজ করা যায় এমন লেআউট জুড়ে এটি করা যেতে পারে। টেক্সটে ব্যবহারকারীর ইন্টার্যাকশন
অন্যান্য কম্পোজ করা যায় এমন লেআউট থেকে আলাদা, কারণ আপনি Text কম্পোজ করা যায় এমন লেআউটের
কোনও অংশে মডিফায়ার যোগ করতে পারবেন না। এই পৃষ্ঠা ব্যবহারকারীর ইন্টার্যাকশন
চালু করে এমন API হাইলাইট করে।
টেক্সট বেছে নিন
ডিফল্ট হিসেবে, কম্পোজ করার উপযুক্ত আইটেম বেছে নেওয়ার মতো হয় না, এর অর্থ হল ব্যবহারকারীরা আপনার অ্যাপ থেকে টেক্সট বেছে নিতে ও কপি করতে
পারেন না। টেক্সট বেছে নেওয়ার সুবিধা চালু করতে, আপনার টেক্সট এলিমেন্টকে
SelectionContainer কম্পোজ করার উপযুক্ত আইটেম দিয়ে র্যাপ করুন:
@Composable fun SelectableText() { SelectionContainer { Text("This text is selectable") } }
বেছে নেওয়ার উপযুক্ত অংশের নির্দিষ্ট কিছু অংশ বেছে নেওয়ার সুবিধা আপনি বন্ধ করতে চাইতে পারেন। এটি করতে, আপনাকে DisableSelection
কম্পোজ করার উপযুক্ত আইটেম দিয়ে বেছে নেওয়ার অযোগ্য অংশটি র্যাপ করতে হবে:
@Composable fun PartiallySelectableText() { SelectionContainer { Column { Text("This text is selectable") Text("This one too") Text("This one as well") DisableSelection { Text("But not this one") Text("Neither this one") } Text("But again, you can select this one") Text("And this one too") } } }
LinkAnnotation ব্যবহার করে টেক্সটের ক্লিক করা যায় এমন অংশ তৈরি করা
Text-এ ক্লিক করার জন্য শুনতে, আপনি clickable
মডিফায়ার যোগ করতে পারেন। তবে, আপনি Text ভ্যালুর
নির্দিষ্ট অংশের সাথে অতিরিক্ত তথ্য অ্যাটাচ করতে চাইতে পারেন, যেমন কোনও নির্দিষ্ট শব্দের সাথে অ্যাটাচ করা URL যা কোনও
ব্রাউজারে খুলতে হবে। এই ধরনের ক্ষেত্রে, আপনাকে LinkAnnotation ব্যবহার করতে হবে, যা হল
একটি অ্যানোটেশন যা টেক্সটের ক্লিক করা যায় এমন অংশকে উপস্থাপন করে।
LinkAnnotation-এর সাহায্যে, আপনি Text কম্পোজ করা যায় এমন
কোনও অংশের সাথে URL অ্যাটাচ করতে পারবেন যেটি ক্লিক করলেই অটোমেটিক খুলে যাবে, যেমনটি নিম্নলিখিত স্নিপেটে দেখানো হয়েছে:
@Composable fun AnnotatedStringWithLinkSample() { // Display multiple links in the text Text( buildAnnotatedString { append("Go to the ") withLink( LinkAnnotation.Url( "https://developer.android.com/", TextLinkStyles(style = SpanStyle(color = Color.Blue)) ) ) { append("Android Developers ") } append("website, and check out the") withLink( LinkAnnotation.Url( "https://developer.android.com/jetpack/compose", TextLinkStyles(style = SpanStyle(color = Color.Green)) ) ) { append("Compose guidance") } append(".") } ) }
এছাড়াও, আপনি Textকম্পোজ করা যায় এমন আইটেমের
কোনও অংশে ব্যবহারকারীর ক্লিক করার উত্তরে কাস্টম অ্যাকশন কনফিগার করতে পারবেন। নিচের স্নিপেটে, ব্যবহারকারী
“Jetpack Compose”-এ ক্লিক করলে, একটি লিঙ্ক দেখানো হয় এবং ব্যবহারকারী
লিঙ্কে ক্লিক করলে মেট্রিক লগ করা হয়:
@Composable fun AnnotatedStringWithListenerSample() { // Display a link in the text and log metrics whenever user clicks on it. In that case we handle // the link using openUri method of the LocalUriHandler val uriHandler = LocalUriHandler.current Text( buildAnnotatedString { append("Build better apps faster with ") val link = LinkAnnotation.Url( "https://developer.android.com/jetpack/compose", TextLinkStyles(SpanStyle(color = Color.Blue)) ) { val url = (it as LinkAnnotation.Url).url // log some metrics uriHandler.openUri(url) } withLink(link) { append("Jetpack Compose") } } ) }
আপনার জন্য সাজেস্ট করা হয়েছে
- মনে রাখবেন: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট দেখানো হয়
- কম্পোজে শব্দার্থ
- Compose-এ অ্যাক্সেসিবিলিটি
- Compose-এ Material Design 2