কিছু পরিস্থিতিতে আছে, আমাদের খুঁজে বের করা উচিত কীবোর্ড দৃশ্যমান বা বিশেষ কার্যকলাপে নয়। এই উদাহরণে আমরা অ্যান্ড্রয়েডে ভার্চুয়াল কীবোর্ডের দৃশ্যমানতা পরীক্ষা করতে পারি।
ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে সমস্ত প্রয়োজনীয় বিবরণ পূরণ করুন৷
ধাপ 2 − res/layout/activity_main.xml-এ নিম্নলিখিত কোড যোগ করুন।
<?xml version = "1.0" encoding = "utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android = "https://schemas.android.com/apk/res/android" xmlns:app = "https://schemas.android.com/apk/res-auto" xmlns:tools = "https://schemas.android.com/tools" android:layout_width = "match_parent" android:layout_height = "match_parent" android:id = "@+id/rootview" tools:context = ".MainActivity"> <EditText android:id = "@+id/editext" android:layout_width = "match_parent" android:layout_height = "wrap_content"> </EditText> <Button android:id = "@+id/button" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "Click here to hide" app:layout_constraintBottom_toBottomOf = "parent" app:layout_constraintLeft_toLeftOf = "parent" app:layout_constraintRight_toRightOf = "parent" app:layout_constraintTop_toTopOf = "parent" /> </android.support.constraint.ConstraintLayout>
ধাপ 3 - src/MainActivity.java
-এ নিম্নলিখিত কোড যোগ করুনimport android.graphics.Rect; import android.os.Build; import android.os.Bundle; import android.support.annotation.RequiresApi; import android.support.constraint.ConstraintLayout; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.view.ViewTreeObserver; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements View.OnClickListener { ConstraintLayout constraintLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = findViewById(R.id.button); EditText editText=findViewById(R.id.editext); editText.requestFocus(); constraintLayout=findViewById(R.id.rootview); constraintLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect r = new Rect(); constraintLayout.getWindowVisibleDisplayFrame(r); int screenHeight = constraintLayout.getRootView().getHeight(); int keypadHeight = screenHeight - r.bottom; if (keypadHeight > screenHeight * 0.15) { Toast.makeText(MainActivity.this,"Keyboard is showing",Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this,"keyboard closed",Toast.LENGTH_LONG).show(); } } }); button.setOnClickListener(this); } @RequiresApi(api = Build.VERSION_CODES.O) @Override public void onClick(View v) { switch (v.getId()) { case R.id.button: hideSoftkeybard(v); break; } } private void hideSoftkeybard(View v) { InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); inputMethodManager.hideSoftInputFromWindow(v.getWindowToken(), 0); } }
উপরের কোডে আমরা ভিউ ট্রিঅবসার্ভার লিসেনার ব্যবহার করেছি নির্দিষ্ট কার্যকলাপে ভিউ গ্রুপ পরিবর্তনগুলি খুঁজে বের করতে। সেই পর্যবেক্ষকটিতে আমরা নিম্নলিখিত কোড −
ব্যবহার করে মূল উপাদানের উচ্চতা খুঁজে পেয়েছিint screenHeight = constraintLayout.getRootView().getHeight();
এখন আমাদের কীবোর্ডের উচ্চতা খুঁজে বের করতে হবে যেভাবে নীচে দেখানো হয়েছে
Rect r = new Rect(); constraintLayout.getWindowVisibleDisplayFrame(r); int keypadHeight = screenHeight - r.bottom;
এখন আমাদেরকে নীচে দেখানো রুটভিউ হাইটের সাথে কীবোর্ডের উচ্চতা তুলনা করতে হবে
if (keypadHeight > screenHeight * 0.15) { Toast.makeText(MainActivity.this,"Keyboard is showing",Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this,"keyboard closed",Toast.LENGTH_LONG).show(); }
পদক্ষেপ 4৷ − নীচে দেখানো হিসাবে AndroidManifest.xml ফাইলে নিম্নলিখিত কোড যোগ করুন
<?xml version = "1.0" encoding = "utf-8"?> <manifest xmlns:android = "https://schemas.android.com/apk/res/android" package = "com.example.andy.myapplication"> <application android:allowBackup = "true" android:icon = "@mipmap/ic_launcher" android:label = "@string/app_name" android:roundIcon = "@mipmap/ic_launcher_round" android:supportsRtl = "true" android:theme = "@style/AppTheme"> <activity android:name = ".MainActivity" android:windowSoftInputMode = "stateAlwaysVisible"> <intent-filter> <action android:name = "android.intent.action.MAIN" /> <category android:name = "android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
উপরের কোডে আমরা stateAlwaysVisible হিসেবে windowsoftInputMode যুক্ত করেছি। এটি দরকারী যখন সম্পাদনা পাঠ্য অনুরোধ ফোকাস করা হয় এটি কীবোর্ড দেখাবে৷
৷আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করা যাক. আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালানোর জন্য, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং রান এ ক্লিক করুন টুলবার থেকে আইকন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে
উপরের আউটপুটে, কীবোর্ড প্রদর্শিত হলে, এটি কীবোর্ড দেখানোর মতো বার্তা দেখাবে।
কীবোর্ড লুকানোর জন্য একটি বোতামে ক্লিক করুন। এটি উপরে দেখানো হিসাবে কীবোর্ড বন্ধ হিসাবে বার্তাটি দেখাবে।