আমার একটি Edit Textইনপুট সহ একটি ক্রিয়াকলাপ আছে । ক্রিয়াকলাপটি শুরু করা হলে অ্যান্ড্রয়েড কীবোর্ড প্রদর্শিত হয় shown ব্যবহারকারী ইনপুটটিতে ফোকাস না করা পর্যন্ত কী কীবোর্ডটি লুকিয়ে থাকতে পারে?
android:windowSoftInputMode="adjustPan"?
আমার একটি Edit Textইনপুট সহ একটি ক্রিয়াকলাপ আছে । ক্রিয়াকলাপটি শুরু করা হলে অ্যান্ড্রয়েড কীবোর্ড প্রদর্শিত হয় shown ব্যবহারকারী ইনপুটটিতে ফোকাস না করা পর্যন্ত কী কীবোর্ডটি লুকিয়ে থাকতে পারে?
android:windowSoftInputMode="adjustPan"?
উত্তর:
আমি মনে করি নিম্নলিখিতটি কাজ করতে পারে
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
আমি আগে এই ধরণের জিনিস জন্য এটি ব্যবহার করেছি।
EditText? :) ক্রিয়াকলাপ শুরু হওয়ার সাথে সাথে কীবোর্ডটি লুকানো হয় যা রয়েছে যার মধ্যে রয়েছেEditText
এটিও চেষ্টা করে দেখুন -
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
অন্যথায়, আপনার ম্যানিফেস্ট ফাইলের ক্রিয়াকলাপে ঘোষণা করুন -
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name"
android:windowSoftInputMode="stateHidden"
>
আপনি যদি ইতিমধ্যে বা এর android:windowSoftInputModeমতো মানের জন্য ব্যবহার করে থাকেন তবে আপনি দুটি মান একত্র করতে পারেন:adjustResizeadjustPan
<activity
...
android:windowSoftInputMode="stateHidden|adjustPan"
...
>
এটি যখনই উপযুক্ত হবে কীবোর্ডটি আড়াল করে রাখবে, তবে কীবোর্ডটি প্রদর্শিত হতে হবে সেক্ষেত্রে কার্যকলাপের দৃশ্যটি প্যান করুন।
থিমটি ব্যবহার করে সমস্ত ক্রিয়াকলাপের জন্য এটি লুকান
<style name="MyTheme" parent="Theme">
<item name="android:windowSoftInputMode">stateHidden</item>
</style>
থিম সেট করুন
<application android:theme="@style/MyTheme">
আপনার প্যারেন্ট লেআউটে এই দুটি বৈশিষ্ট্য যুক্ত করুন (উদা: লিনিয়ার লেআউট, আপেক্ষিক লেআউট)
android:focusable="false"
android:focusableInTouchMode="false"
এটি কৌশলটি করবে :)
trueজ্যাক টি এর উত্তর অনুসারে এটি আমার পক্ষে কাজ করে না, তবে তাদের কাজ করে works সাম্প্রতিক সংস্করণগুলিতে কি কোনও আচরণ পরিবর্তন হয়েছিল?
falseএডিটিংয়ের কাজটি কেন করা উচিত তা আমি বুঝতে পারি না , কারণ এডিটেক্সট বাক্সগুলি থেকে ফোকাস সরিয়ে নেওয়া।
মেনিফেস্ট ফাইলে এটি ঘোষণা করার চেষ্টা করুন
<activity android:name=".HomeActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateAlwaysHidden"
>
AndroidManLive.xML এ স্রেফ যুক্ত করুন
<activity android:name=".HomeActivity" android:windowSoftInputMode="stateHidden">
</activity>
আপনি .xML লেআউট ফাইলের সরাসরি প্যারেন্ট লেআউটে কোডের এই লাইনগুলি লিখতে পারেন যাতে আপনার "সমস্যা" রয়েছে:
android:focusable="true"
android:focusableInTouchMode="true"
উদাহরণ স্বরূপ:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
...
android:focusable="true"
android:focusableInTouchMode="true" >
<EditText
android:id="@+id/myEditText"
...
android:hint="@string/write_here" />
<Button
android:id="@+id/button_ok"
...
android:text="@string/ok" />
</LinearLayout>
সম্পাদনা:
উদাহরণ যদি এডিটেক্সট অন্য লেআউটে অন্তর্ভুক্ত থাকে:
<?xml version="1.0" encoding="utf-8"?>
<ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
... > <!--not here-->
... <!--other elements-->
<LinearLayout
android:id="@+id/theDirectParent"
...
android:focusable="true"
android:focusableInTouchMode="true" > <!--here-->
<EditText
android:id="@+id/myEditText"
...
android:hint="@string/write_here" />
<Button
android:id="@+id/button_ok"
...
android:text="@string/ok" />
</LinearLayout>
</ConstraintLayout>
কীটি হ'ল এডিট টেক্সট সরাসরি ফোকাসযোগ্য নয় তা নিশ্চিত করা।
বিদায়! ;-)
আমার জন্য সেরা সমাধান, আপনার ক্লাসটি পেস্ট করুন
@Override
public void onResume() {
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
super.onResume();
}
@Override
public void onStart() {
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
super.onStart();
}
কীবোর্ডটি আড়াল করার কাজ ction
public static void hideKeyboard(Activity activity) {
View view = activity.getCurrentFocus();
if (view != null) {
InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}
AndroidManifext.xML ফাইলে কীবোর্ডটি লুকান।
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:windowSoftInputMode="stateHidden">
@ লুকাসের দ্বারা গৃহীত উত্তরের উপর প্রসারিত করতে:
প্রাথমিক জীবনচক্রের একটিতে আপনার ক্রিয়াকলাপ থেকে এটি কল করুন:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
override fun onResume() {
super.onResume()
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)
}
আপনি প্রতিটি উপাদান জন্য এই সেট অনন্য বৈশিষ্ট্য চেষ্টা করতে পারেন
TextView mtextView = findViewById(R.id.myTextView);
mtextView.setShowSoftInputOnFocus(false);
উপাদান ফোকাস করার সময় কীবোর্ডটি প্রদর্শিত হবে না
//to hide the soft keyboard
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
এটি কেবল আপনার ক্রিয়াকলাপে যুক্ত করুন:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (getCurrentFocus() != null) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
return super.dispatchTouchEvent(ev);
}
<activity android:windowSoftInputMode="stateHidden" ...>