জেটপ্যাক কম্পোজ 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") } } }
পাঠ্যের উপর একটি ক্লিকের অবস্থান পান
Text
ক্লিক শুনতে, আপনি clickable
মডিফায়ার যোগ করতে পারেন। যাইহোক, আপনি যদি Text
কম্পোজেবলের মধ্যে একটি ক্লিকের অবস্থান পেতে চান, এমন ক্ষেত্রে যেখানে আপনার পাঠ্যের বিভিন্ন অংশের উপর ভিত্তি করে বিভিন্ন অ্যাকশন রয়েছে, আপনাকে পরিবর্তে একটি ClickableText
ব্যবহার করতে হবে:
@Composable fun SimpleClickableText() { ClickableText(text = AnnotatedString("Click Me"), onClick = { offset -> Log.d("ClickableText", "$offset -th character is clicked.") }) }
টীকা সহ ক্লিক করুন
যখন একজন ব্যবহারকারী একটি Text
কম্পোজেবল ক্লিক করে, আপনি Text
মানের একটি অংশে অতিরিক্ত তথ্য সংযুক্ত করতে চাইতে পারেন, যেমন একটি নির্দিষ্ট শব্দের সাথে সংযুক্ত একটি URL যেমন একটি ব্রাউজারে খোলার জন্য। এটি করার জন্য, আপনাকে একটি টীকা সংযুক্ত করতে হবে, যা একটি ট্যাগ ( String
), একটি আইটেম ( String
), এবং একটি পাঠ্য পরিসীমা পরামিতি হিসাবে নেয়৷ একটি AnnotatedString
থেকে, এই টীকাগুলি তাদের ট্যাগ বা পাঠ্য পরিসর দিয়ে ফিল্টার করা যেতে পারে। এখানে একটি উদাহরণ:
@Composable fun AnnotatedClickableText() { val annotatedText = buildAnnotatedString { append("Click ") // We attach this *URL* annotation to the following content // until `pop()` is called pushStringAnnotation( tag = "URL", annotation = "https://developer.android.com" ) withStyle( style = SpanStyle( color = Color.Blue, fontWeight = FontWeight.Bold ) ) { append("here") } pop() } ClickableText(text = annotatedText, onClick = { offset -> // We check if there is an *URL* annotation attached to the text // at the clicked position annotatedText.getStringAnnotations( tag = "URL", start = offset, end = offset ).firstOrNull()?.let { annotation -> // If yes, we log its value Log.d("Clicked URL", annotation.item) } }) }{% শব্দার্থে %}
আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট প্রদর্শিত হয়
- রচনায় শব্দার্থবিদ্যা
- রচনায় অ্যাক্সেসযোগ্যতা
- কম্পোজে মেটেরিয়াল ডিজাইন 2