ব্যবহারকারীর মিথস্ক্রিয়া সক্ষম করুন

জেটপ্যাক কম্পোজ 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")
        }
    }
}

টেক্সট একটি দীর্ঘ উত্তরণ. ব্যবহারকারী পুরো প্যাসেজটি নির্বাচন করার চেষ্টা করেছিল, কিন্তু যেহেতু দুটি লাইনে DisableSelection প্রয়োগ করা হয়েছিল, সেগুলি নির্বাচন করা হয়নি।

পাঠ্যের উপর একটি ক্লিকের অবস্থান পান

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)
        }
    })
}

{% শব্দার্থে %} {% endverbatim %} {% শব্দার্থে %} {% endverbatim %}