ആൻഡ്രോയിഡ് കീബോർഡ് മറയ്ക്കുന്നതിനുള്ള ആമുഖം
ആൻഡ്രോയിഡ് ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കുമ്പോൾ, സോഫ്റ്റ് കീബോർഡ് പ്രോഗ്രാമാറ്റിക് ആയി മറയ്ക്കേണ്ട സമയങ്ങളുണ്ട്. നിങ്ങളുടെ ലേഔട്ടിൽ എഡിറ്റ്ടെക്സ്റ്റും ബട്ടണും ഉള്ളപ്പോൾ, ബട്ടൺ ക്ലിക്ക് ചെയ്ത ശേഷം കീബോർഡ് അപ്രത്യക്ഷമാകണമെങ്കിൽ ഇത് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്.
ഈ ഗൈഡിൽ, ഈ പ്രവർത്തനം നേടുന്നതിനുള്ള ലളിതവും ഫലപ്രദവുമായ വഴികൾ ഞങ്ങൾ പര്യവേക്ഷണം ചെയ്യും. നൽകിയിരിക്കുന്ന ഘട്ടങ്ങൾ പാലിക്കുന്നതിലൂടെ, കീബോർഡ് ദൃശ്യപരത കാര്യക്ഷമമായി കൈകാര്യം ചെയ്യുന്നതിലൂടെ നിങ്ങളുടെ ആപ്പിൻ്റെ ഉപയോക്തൃ അനുഭവം മെച്ചപ്പെടുത്താൻ നിങ്ങൾക്ക് കഴിയും.
കമാൻഡ് | വിവരണം |
---|---|
getSystemService | പേര് പ്രകാരം ഒരു സിസ്റ്റം-ലെവൽ സേവനം വീണ്ടെടുക്കുന്നു; ഇവിടെ, കീബോർഡ് കൈകാര്യം ചെയ്യുന്നതിനായി InputMethodManager ലഭിക്കാൻ ഇത് ഉപയോഗിക്കുന്നു. |
hideSoftInputFromWindow | വിൻഡോയിൽ നിന്ന് സോഫ്റ്റ് കീബോർഡ് മറയ്ക്കുന്നു, ഒരു ടോക്കൺ എടുത്ത് പാരാമീറ്ററുകളായി ഫ്ലാഗുചെയ്യുന്നു. |
getCurrentFocus | ആക്റ്റിവിറ്റിയിലെ നിലവിലെ ഫോക്കസ് ചെയ്ത കാഴ്ച നൽകുന്നു, കീബോർഡ് എവിടെ നിന്നാണ് മറയ്ക്കേണ്ടതെന്ന് നിർണ്ണയിക്കാൻ ഉപയോഗിക്കുന്നു. |
onClickListener | ഒരു കാഴ്ച (ഉദാ. ബട്ടൺ) ക്ലിക്ക് ചെയ്യുമ്പോൾ ട്രിഗർ ചെയ്യുന്ന ഒരു കോൾബാക്ക് സജ്ജീകരിക്കുന്നു. |
dispatchTouchEvent | ടച്ച് സ്ക്രീൻ മോഷൻ ഇവൻ്റുകൾ വിൻഡോയിലേക്ക് അയയ്ക്കുന്നതിന് മുമ്പ് തടസ്സപ്പെടുത്തുന്നു, ഇഷ്ടാനുസൃത ടച്ച് കൈകാര്യം ചെയ്യുന്നതിന് ഉപയോഗപ്രദമാണ്. |
windowToken | കീബോർഡ് മറയ്ക്കുന്നതിന് ആവശ്യമായ, കാഴ്ചയുമായി ബന്ധപ്പെട്ട വിൻഡോയെ അദ്വിതീയമായി തിരിച്ചറിയുന്ന ഒരു ടോക്കൺ നൽകുന്നു. |
ആൻഡ്രോയിഡ് കീബോർഡ് എങ്ങനെ മറയ്ക്കാമെന്ന് മനസ്സിലാക്കുന്നു
ജാവ ഉദാഹരണത്തിൽ, സ്ക്രിപ്റ്റ് ആദ്യം ആവശ്യമായ ക്ലാസുകൾ ഇറക്കുമതി ചെയ്യുന്നു InputMethodManager, View, ഒപ്പം EditText. ദി onCreate രീതി ലേഔട്ട് സജ്ജീകരിക്കുകയും ആരംഭിക്കുകയും ചെയ്യുന്നു EditText ഒപ്പം Button. ബട്ടൺ ക്ലിക്ക് ചെയ്യുമ്പോൾ, ദി hideKeyboard രീതി എന്ന് വിളിക്കുന്നു. ഈ രീതി ഉപയോഗിച്ച് നിലവിലെ ഫോക്കസ് ചെയ്ത കാഴ്ച വീണ്ടെടുക്കുന്നു getCurrentFocus, ഒരു കാഴ്ച ഫോക്കസ് ചെയ്താൽ, അത് ഉപയോഗിക്കുന്നു InputMethodManager വിളിച്ച് സോഫ്റ്റ് കീബോർഡ് മറയ്ക്കാൻ hideSoftInputFromWindow. ബട്ടൺ ക്ലിക്ക് ചെയ്യുമ്പോൾ ഇത് കീബോർഡ് ഫലപ്രദമായി അടയ്ക്കുന്നു.
കോട്ലിൻ ഉദാഹരണത്തിൽ, സമാനമായ പ്രവർത്തനക്ഷമത കൈവരിക്കുന്നു. സ്ക്രിപ്റ്റ് അസാധുവാക്കുന്നു onCreate ഉള്ളടക്ക കാഴ്ച സജ്ജീകരിക്കുന്നതിനും ആരംഭിക്കുന്നതിനുമുള്ള രീതി EditText ഒപ്പം Button. ബട്ടൺ ക്ലിക്ക് ശ്രോതാവിനെ വിളിക്കുന്നു hideKeyboard രീതി. കൂടാതെ, ദി dispatchTouchEvent പുറത്ത് സ്പർശിക്കുമ്പോൾ കീബോർഡ് മറയ്ക്കുന്നതിനുള്ള രീതി അസാധുവാക്കിയിരിക്കുന്നു. ഈ രീതി ഒരു കാഴ്ച ഫോക്കസ് ചെയ്തിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുകയും ഉപയോഗിച്ച് കീബോർഡ് മറയ്ക്കുകയും ചെയ്യുന്നു InputMethodManager. സോഫ്റ്റ് കീബോർഡിൻ്റെ ദൃശ്യപരത കാര്യക്ഷമമായി കൈകാര്യം ചെയ്യുന്നതിലൂടെ ഈ സ്ക്രിപ്റ്റുകൾ ഉപയോക്തൃ അനുഭവം മെച്ചപ്പെടുത്തുന്നു.
ആൻഡ്രോയിഡ് സോഫ്റ്റ് കീബോർഡ് പ്രോഗ്രമാറ്റിക്കായി അടയ്ക്കുന്നു
ആൻഡ്രോയിഡ് വികസനത്തിനായുള്ള ജാവ
import android.app.Activity;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText editText = findViewById(R.id.editText);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hideKeyboard();
}
});
}
private void hideKeyboard() {
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
}
പുറത്ത് തൊടുമ്പോൾ കീബോർഡ് മറയ്ക്കുക
ആൻഡ്രോയിഡ് വികസനത്തിനായുള്ള കോട്ലിൻ
import android.app.Activity
import android.os.Bundle
import android.view.MotionEvent
import android.view.View
import android.view.inputmethod.InputMethodManager
import android.widget.EditText
import android.widget.Button
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val editText = findViewById<EditText>(R.id.editText)
val button = findViewById<Button>(R.id.button)
button.setOnClickListener { hideKeyboard() }
}
private fun hideKeyboard() {
val view = this.currentFocus
view?.let { v ->
val imm = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(v.windowToken, 0)
}
}
override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
if (currentFocus != null) {
val imm = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(currentFocus!!.windowToken, 0)
}
return super.dispatchTouchEvent(ev)
}
}
ആൻഡ്രോയിഡ് കീബോർഡ് കൈകാര്യം ചെയ്യുന്നതിനുള്ള വിപുലമായ സാങ്കേതിക വിദ്യകൾ
ആൻഡ്രോയിഡ് സോഫ്റ്റ് കീബോർഡ് കൈകാര്യം ചെയ്യുന്നതിൻ്റെ മറ്റൊരു പ്രധാന വശം, വിവിധ ഉപയോക്തൃ ഇടപെടലുകളോടും കോൺഫിഗറേഷനുകളോടും പ്രതികരണമായി അതിൻ്റെ ദൃശ്യപരത കൈകാര്യം ചെയ്യുക എന്നതാണ്. ഉദാഹരണത്തിന്, ഒരു സമയത്ത് കീബോർഡ് സ്വയമേവ ദൃശ്യമാകാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം EditText വ്യത്യസ്ത യുഐ ഘടകങ്ങൾക്കിടയിൽ നാവിഗേറ്റ് ചെയ്യുമ്പോൾ ഫോക്കസ് നേടുകയോ മറയ്ക്കുന്നുവെന്ന് ഉറപ്പാക്കുകയോ ചെയ്യുന്നു. ഉപയോഗിച്ച് ഇത് നേടാം InputMethodManager പോലുള്ള ലൈഫ് സൈക്കിൾ കോൾബാക്കുകൾക്കൊപ്പം onResume ഒപ്പം onPause.
കൂടാതെ, ക്രമീകരിക്കുന്നതിലൂടെ നിങ്ങൾക്ക് കീബോർഡ് സ്വഭാവം നിയന്ത്രിക്കാനാകും android:windowSoftInputMode നിങ്ങളുടെ പ്രവർത്തനത്തിൻ്റെ മാനിഫെസ്റ്റ് ഫയലിലെ ആട്രിബ്യൂട്ട്. കീബോർഡ് പ്രവർത്തനത്തിൻ്റെ ലേഔട്ട് ക്രമീകരിക്കണമോ അതോ വ്യക്തമായി അഭ്യർത്ഥിക്കുന്നതുവരെ മറഞ്ഞിരിക്കണമോ എന്ന് വ്യക്തമാക്കാൻ ഈ ആട്രിബ്യൂട്ട് നിങ്ങളെ അനുവദിക്കുന്നു. ഈ കോൺഫിഗറേഷനുകൾ ഉപയോഗിക്കുന്നത് കൂടുതൽ അവബോധജന്യവും പ്രതികരിക്കുന്നതുമായ ഇൻ്റർഫേസ് നൽകിക്കൊണ്ട് ഉപയോക്തൃ അനുഭവം ഗണ്യമായി മെച്ചപ്പെടുത്താൻ കഴിയും.
ആൻഡ്രോയിഡ് കീബോർഡ് മറയ്ക്കുന്നതിനെക്കുറിച്ചുള്ള പൊതുവായ ചോദ്യങ്ങൾ
- എപ്പോൾ കീബോർഡ് എങ്ങനെ മറയ്ക്കാം EditText ഫോക്കസ് നഷ്ടപ്പെടുമോ?
- നിങ്ങൾക്ക് അസാധുവാക്കാൻ കഴിയും onFocusChange എന്ന ശ്രോതാവ് EditText വിളിക്കുകയും ചെയ്യുക InputMethodManager.hideSoftInputFromWindow.
- എപ്പോൾ എനിക്ക് കീബോർഡ് സ്വയമേവ കാണിക്കാനാകുമോ? EditText ശ്രദ്ധ നേടുന്നു?
- അതെ, ഉപയോഗിക്കുക InputMethodManager.showSoftInput ൽ onFocusChange കേൾവിക്കാരൻ.
- കീബോർഡ് ഒരു ശകലത്തിൽ എങ്ങനെ മറയ്ക്കാം?
- വിളി InputMethodManager.hideSoftInputFromWindow ശകലത്തിൻ്റെ വീക്ഷണത്തിൻ്റെ സന്ദർഭത്തിൽ.
- എന്താണ് android:windowSoftInputMode ഉപയോഗിച്ചത്?
- വലുപ്പം മാറ്റുന്നതോ മറഞ്ഞിരിക്കുന്നതോ പോലുള്ള പ്രവർത്തനത്തിൻ്റെ ലേഔട്ടുമായി കീബോർഡ് എങ്ങനെ സംവദിക്കുന്നുവെന്ന് ഇത് വ്യക്തമാക്കുന്നു.
- പുറത്ത് തൊടുമ്പോൾ കീബോർഡ് എങ്ങനെ മറയ്ക്കാം EditText?
- അസാധുവാക്കുക dispatchTouchEvent പുറത്തുള്ള ടച്ച് ഇവൻ്റുകൾ പരിശോധിക്കുന്നതിനുള്ള നിങ്ങളുടെ പ്രവർത്തനത്തിൽ EditText.
- എനിക്ക് കീബോർഡ് മറച്ചുവെക്കാൻ നിർബന്ധിക്കാമോ?
- അതെ, ക്രമീകരണം വഴി android:windowSoftInputMode വരെ stateHidden മാനിഫെസ്റ്റിൽ.
- കീബോർഡ് നിലവിൽ ദൃശ്യമാണോ എന്ന് ഞാൻ എങ്ങനെ കണ്ടെത്തും?
- ഉപയോഗിക്കുക getWindowVisibleDisplayFrame സ്ക്രീനിൻ്റെ ദൃശ്യമായ ഏരിയയെ റൂട്ട് വ്യൂവിൻ്റെ ഉയരവുമായി താരതമ്യം ചെയ്യാൻ.
- ഒരു ബട്ടൺ ക്ലിക്കിൽ കീബോർഡ് പ്രോഗ്രമാറ്റിക്കായി മറയ്ക്കാൻ കഴിയുമോ?
- അതെ, വിളിക്കൂ InputMethodManager.hideSoftInputFromWindow ബട്ടണുകളിൽ onClickListener.
ആൻഡ്രോയിഡ് കീബോർഡ് മറയ്ക്കുന്നതിനുള്ള പ്രധാന ടേക്ക്അവേകൾ
ഉപസംഹാരമായി, നിങ്ങളുടെ ആപ്ലിക്കേഷനിൽ ഉപയോക്തൃ അനുഭവം വർദ്ധിപ്പിക്കുന്നതിന് Android സോഫ്റ്റ് കീബോർഡ് കൈകാര്യം ചെയ്യുന്നത് നിർണായകമാണ്. ഉപയോഗിച്ച് InputMethodManager, ബട്ടൺ ക്ലിക്കുകൾ അല്ലെങ്കിൽ ടച്ച് ഇവൻ്റുകൾ പോലുള്ള ഉപയോക്തൃ ഇടപെടലുകളെ അടിസ്ഥാനമാക്കി നിങ്ങൾക്ക് കീബോർഡ് പ്രോഗ്രമാറ്റിക്കായി മറയ്ക്കാനോ കാണിക്കാനോ കഴിയും. കൂടാതെ, കോൺഫിഗർ ചെയ്യുന്നു android:windowSoftInputMode നിങ്ങളുടെ മാനിഫെസ്റ്റ് ഫയലിലെ ആട്രിബ്യൂട്ട് കീബോർഡിൻ്റെ സ്വഭാവം കൂടുതൽ കൃത്യമായി നിയന്ത്രിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഈ രീതികൾ നടപ്പിലാക്കുന്നത്, കീബോർഡിൻ്റെ സാന്നിധ്യം ആപ്പിൻ്റെ ഉപയോഗക്ഷമതയെ തടസ്സപ്പെടുത്തുന്നില്ലെന്ന് ഉറപ്പാക്കുന്നു, ഇത് ഉപയോക്താക്കൾക്ക് സുഗമവും അവബോധജന്യവുമായ ഇൻ്റർഫേസ് നൽകുന്നു.