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

রচনা পদ্ধতিটি চেষ্টা করে দেখুন
জেটপ্যাক কম্পোজ হল অ্যান্ড্রয়েডের জন্য প্রস্তাবিত UI টুলকিট। কম্পোজে স্টাইলাস দিয়ে কীভাবে কাজ করবেন তা শিখুন।

অ্যান্ড্রয়েড ১৪ (এপিআই লেভেল ৩৪) এবং তার উচ্চতর ভার্সন ব্যবহারকারীদের স্টাইলাস ব্যবহার করে যেকোনো অ্যাপের যেকোনো টেক্সট ইনপুট ফিল্ডে লিখতে সক্ষম করে। EditText কম্পোনেন্ট এবং WebView টেক্সট উইজেট সহ অ্যান্ড্রয়েড টেক্সট এন্ট্রি ফিল্ডগুলি ডিফল্টরূপে স্টাইলাস ইনপুট সমর্থন করে।

তবে, যদি আপনার অ্যাপের জন্য কাস্টম টেক্সট ইনপুট ফিল্ডের প্রয়োজন হয় ( কাস্টম টেক্সট এডিটর দেখুন) অথবা যদি টেক্সট এন্ট্রি ফিল্ডগুলি একটি অঙ্কন পৃষ্ঠকে আচ্ছাদিত করে এমন একটি জটিল লেআউট থাকে, তাহলে আপনাকে আপনার অ্যাপটি কাস্টমাইজ করতে হবে।

চিত্র ১. লেখনী সহ হাতে লেখা ইনপুট।

EditText

অ্যান্ড্রয়েড ১৪ এবং তার পরবর্তী সংস্করণে ডিফল্টরূপে সমস্ত EditText ফিল্ডের জন্য স্টাইলাস হস্তাক্ষর সক্ষম করা আছে। ভিউয়ের হাতের লেখার সীমানার মধ্যে যখন কোনও স্টাইলাস মোশন ইভেন্ট সনাক্ত করা হয় তখন EditText এর জন্য হস্তাক্ষর মোড শুরু হয়।

হাতের লেখার সীমানায় ভিউয়ের চারপাশে ৪০ ডিপি উল্লম্ব প্যাডিং এবং ১০ ডিপি অনুভূমিক প্যাডিং অন্তর্ভুক্ত রয়েছে। setHandwritingBoundsOffsets() দিয়ে হাতের লেখার সীমা সামঞ্জস্য করুন। setAutoHandwritingEnabled(false) দিয়ে হাতের লেখা অক্ষম করুন।

স্টাইলাস গতির ঘটনা সনাক্তকরণের জন্য সীমানা নির্দেশ করে চারপাশের আয়তক্ষেত্র সহ ইনপুট ক্ষেত্র।
চিত্র ২। EditText ক্ষেত্রের হাতের লেখার সীমানা।

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

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

চিত্র ৩. স্ট্যাটিক UI উপাদান থেকে টেক্সট ইনপুট ক্ষেত্রে ইনপুট প্রতিনিধিত্ব।

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

প্লেসহোল্ডার ইনপুট ফিল্ডের জন্য স্টাইলাস হস্তাক্ষর ইনপুট সমর্থন করার জন্য হস্তাক্ষর প্রতিনিধিত্ব API ব্যবহার করুন ( setHandwritingDelegatorCallback() এবং setIsHandwritingDelegate() দেখুন)। প্লেসহোল্ডার UI উপাদানটি একটি কার্যকরী ইনপুট ফিল্ডে হস্তাক্ষর প্রতিনিধিত্ব করার জন্য কনফিগার করা হয়েছে, উদাহরণস্বরূপ:

কোটলিন

if (Build.VERSION.SDK_INT >= 34) {
    placeholderInputField.setHandwritingDelegatorCallback {
        showAndFocusDelegateInputField()
    }
    delegateInputField.setIsHandwritingDelegate(true)
}

জাভা

if (Build.VERSION.SDK_INT >= 34) {
    placeholderInputField.setHandwritingDelegatorCallback(this::showAndFocusInputFieldDelegate);
    delegateInputField.setIsHandwritingDelegate(true);
}

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

চিত্র ৪. স্ট্যাটিক UI উপাদান থেকে টেক্সট ইনপুট ক্ষেত্রে স্টাইলাস ইনপুট প্রতিনিধিত্ব।

মেটেরিয়াল ডিজাইন

com.google.android.material.search লাইব্রেরি প্লেসহোল্ডার UI প্যাটার্ন বাস্তবায়নের সুবিধার্থে SearchBar এবং SearchView ক্লাস প্রদান করে।

প্লেসহোল্ডার এবং কার্যকরী অনুসন্ধান ভিউ setUpWithSearchBar() এর সাথে লিঙ্ক করা হয়েছে।

আপনার অ্যাপে কোনও অতিরিক্ত ডেভেলপমেন্টের প্রয়োজন ছাড়াই ম্যাটেরিয়াল লাইব্রেরিতে হ্যান্ডরাইটিং ডেলিগেশন কনফিগার করা আছে।

অঙ্কন পৃষ্ঠতলের সাথে ওভারল্যাপ করুন

যদি আপনার অ্যাপের একটি অঙ্কন পৃষ্ঠ থাকে যার উপর একটি টেক্সট ফিল্ড থাকে, তাহলে ব্যবহারকারীকে অঙ্কন করার অনুমতি দেওয়ার জন্য আপনাকে স্টাইলাস হস্তাক্ষর অক্ষম করতে হতে পারে। setAutoHandwritingEnabled() দেখুন।

পরীক্ষামূলক

স্টাইলাস হস্তাক্ষর অ্যান্ড্রয়েড ১৪ এবং উচ্চতর ডিভাইসগুলিতে সমর্থিত, যার একটি সামঞ্জস্যপূর্ণ স্টাইলাস ইনপুট ডিভাইস এবং একটি ইনপুট পদ্ধতি সম্পাদক (IME) রয়েছে যা অ্যান্ড্রয়েড ১৪ স্টাইলাস হস্তাক্ষর API সমর্থন করে।

যদি আপনার স্টাইলাস ইনপুট ডিভাইস না থাকে, তাহলে নিম্নলিখিত অ্যান্ড্রয়েড ডিবাগ ব্রিজ (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 বিটা ব্যবহার করুন।

অতিরিক্ত সম্পদ