টেক্সট ফিল্ডে স্টাইলাস ইনপুট

Jetpack androidx.compose.material3 লাইব্রেরি ব্যবহারকারীদের স্টাইলাস ব্যবহার করে যেকোনও অ্যাপের যেকোনও TextField কম্পোনেন্টে লিখতে দেয়।

ছবি ১. স্টাইলাস ব্যবহার করে হাতে লেখা ইনপুট।

ডিফল্ট হিসেবে স্টাইলাস ইনপুট চালু করতে, আপনার অ্যাপের build.gradle ফাইলে লাইব্রেরি ডিপেন্ডেন্সি যোগ করুন:

Kotlin

dependencies {
    implementation("androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "LATEST_EXTENSION_VERSION"
    }

    kotlinOptions {
        jvmTarget = "LATEST_JVM_VERSION"
    }
}

গ্ৰুভি

dependencies {
    implementation 'androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION'
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = 'LATEST_EXTENSION_VERSION'
    }

    kotlinOptions {
        jvmTarget = 'LATEST_JVM_VERSION'
    }
}

TextField

Android 14 ও তার পরবর্তী ভার্সন এবং androidx.compose.foundation:foundation:1.7.0 ডিপেন্ডেন্সিতে ডিফল্ট হিসেবে সব TextField কম্পোনেন্টের জন্য স্টাইলাস হাতের লেখা চালু করা আছে। TextField-এর জন্য হাতের লেখা মোড চালু করা হয় যখন কম্পোনেন্টের হাতের লেখার সীমার মধ্যে স্টাইলাস মোশন ইভেন্ট শনাক্ত করা হয়।

হাতে লেখার বাউন্ডে ইনপুট ফিল্ডের চারপাশে ৪০ ডিপি উল্লম্ব প্যাডিং এবং ১০ ডিপি অনুভূমিক প্যাডিং অন্তর্ভুক্ত থাকে।

স্টাইলাস মোশন ইভেন্ট শনাক্ত করার জন্য বাউন্ড নির্দেশ করে এমন চতুর্ভুজ সহ ইনপুট ফিল্ড।
ছবি ২. TextFieldটি কম্পোনেন্টের হাতের লেখার বাউন্ড।

ইনপুট পদ্ধতি এডিটর KeyboardType.Password-এর সাথে অনুরোধ করা হলে, TextField ফিল্ডের জন্য স্টাইলাস হাতের লেখা কাজ করে না।

ইনপুট ডেলিগেশন

অ্যাপগুলি প্লেসহোল্ডার UI এলিমেন্ট দেখাতে পারে যা টেক্সট ইনপুট ফিল্ডের মতো দেখায় কিন্তু আসলে টেক্সট ইনপুট করার ক্ষমতা ছাড়াই শুধু স্ট্যাটিক UI এলিমেন্ট। সার্চ ফিল্ড হল একটি সাধারণ উদাহরণ। স্ট্যাটিক UI এলিমেন্টে ট্যাপ করলে, নতুন UI-তে ট্রানজিশন ট্রিগার হয়। এতে ইনপুটের জন্য ফোকাস করা একটি ফাংশনাল টেক্সট ইনপুট ফিল্ড থাকে।

ছবি ৩. স্ট্যাটিক UI এলিমেন্ট থেকে টেক্সট ইনপুট ফিল্ডে ইনপুট ডেলিগেশন।

স্টাইলাস ইনপুট ডেলিগেশন

placeholder ইনপুট ফিল্ডের জন্য স্টাইলাস হ্যান্ডরাইটিং ইনপুট সমর্থন করতে হ্যান্ডরাইটিং ডেলিগেশন API ব্যবহার করুন (handwritingDetector এবং handwritingHandler দেখুন)। placeholder UI এলিমেন্টটি একটি ফাংশনাল ইনপুট ফিল্ডে হ্যান্ডরাইটিং ডেলিগেট করার জন্য কনফিগার করা হয়েছে। প্রয়োগের উদাহরণ দেখতে, HandwritingDetectorSample.kt দেখুন।

ফাংশনাল ইনপুট ফিল্ড ফোকাস পেলে স্টাইলাস হাতের লেখার মোড শুরু হয় এবং একটি InputConnection তৈরি করে।

ছবি ৪. স্ট্যাটিক UI এলিমেন্ট থেকে টেক্সট ইনপুট ফিল্ডে স্টাইলাস ইনপুট ডেলিগেশন।

পরীক্ষা করা

Android 14 ও তার পরবর্তী যেকোনও ভার্সনের ডিভাইসে স্টাইলাস হাতের লেখা কাজ করে। এর জন্য মানানসই স্টাইলাস ইনপুট ডিভাইস ও ইনপুট পদ্ধতি এডিটর (IME) থাকতে হবে যা Android 14 স্টাইলাস হাতের লেখার API-এর সাথে কাজ করে।

আপনার কাছে স্টাইলাস ইনপুট ডিভাইস না থাকলে, নিম্নলিখিত Android ডিবাগ ব্রিজ (adb) কমান্ড ব্যবহার করে রুট অ্যাক্সেস (এমুলেটর সহ) সহ যেকোনও ডিভাইসে স্টাইলাস ইনপুট সিমুলেট করুন:


// Android 14
adb shell setprop persist.debug.input.simulate_stylus_with_touch true && adb shell stop && adb shell start

// Android 15 and higher
// Property takes effect after screen reconfiguration such as orientation change.
adb shell setprop debug.input.simulate_stylus_with_touch true

আপনি যদি এমন কোনও ডিভাইস ব্যবহার করেন যা স্টাইলাস সমর্থন করে না, তাহলে পরীক্ষা করার জন্য Gboard বিটা ব্যবহার করুন।

অতিরিক্ত রিসোর্স