ആൻഡ്രോയിഡ് സോഫ്റ്റ് കീബോർഡ് പ്രോഗ്രമാറ്റിക്കായി മറയ്ക്കുക ബട്ടൺ ക്ലിക്ക് ചെയ്ത് പുറത്ത് സ്പർശിക്കുക

ആൻഡ്രോയിഡ് സോഫ്റ്റ് കീബോർഡ് പ്രോഗ്രമാറ്റിക്കായി മറയ്ക്കുക ബട്ടൺ ക്ലിക്ക് ചെയ്ത് പുറത്ത് സ്പർശിക്കുക
Java

ആൻഡ്രോയിഡ് സോഫ്റ്റ് കീബോർഡ് കൈകാര്യം ചെയ്യുന്നു

ആൻഡ്രോയിഡ് ആപ്ലിക്കേഷനുകളിൽ പ്രവർത്തിക്കുന്നതിന് പലപ്പോഴും വെർച്വൽ കീബോർഡിലൂടെയുള്ള ഉപയോക്തൃ ഇൻപുട്ട് ആവശ്യമാണ്. നിങ്ങളുടെ ലേഔട്ടിൽ എഡിറ്റ്‌ടെക്‌സ്റ്റും ബട്ടണും ഉള്ള സാഹചര്യത്തിൽ, കീബോർഡ് ഫലപ്രദമായി കൈകാര്യം ചെയ്യേണ്ടത് അത്യാവശ്യമാണ്. പ്രത്യേകിച്ചും, ടെക്‌സ്‌റ്റ് നൽകി ബട്ടണിൽ ക്ലിക്കുചെയ്‌ത ശേഷം, ഉപയോക്തൃ അനുഭവം മെച്ചപ്പെടുത്തുന്നതിന് നിങ്ങൾക്ക് കീബോർഡ് മറയ്‌ക്കേണ്ടി വന്നേക്കാം.

കീബോർഡിന് പുറത്തുള്ള പ്രദേശങ്ങളുമായി ഉപയോക്താവ് ഇടപഴകുമ്പോൾ, ആൻഡ്രോയിഡ് സോഫ്റ്റ് കീബോർഡ് എങ്ങനെ ക്ലോസ് ചെയ്യാം എന്നതിൻ്റെ ലളിതവും പ്രായോഗികവുമായ ഉദാഹരണം ഈ ലേഖനം നൽകും. വിവരിച്ചിരിക്കുന്ന ഘട്ടങ്ങൾ പാലിക്കുന്നതിലൂടെ, നിങ്ങളുടെ Android ആപ്ലിക്കേഷൻ്റെ ഉപയോഗക്ഷമതയും ഇൻ്റർഫേസും വർദ്ധിപ്പിക്കാൻ നിങ്ങൾക്ക് കഴിയും.

കമാൻഡ് വിവരണം
getSystemService ഇൻപുട്ട് രീതികൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള InputMethodManager പോലെയുള്ള ഒരു സിസ്റ്റം-ലെവൽ സേവനം പേരിനനുസരിച്ച് വീണ്ടെടുക്കുന്നു.
hideSoftInputFromWindow നിലവിൽ ഇൻപുട്ട് സ്വീകരിക്കുന്ന സോഫ്റ്റ് കീബോർഡ് വിൻഡോ മറയ്ക്കാൻ അഭ്യർത്ഥിക്കുന്നു.
getWindowToken കീബോർഡ് മറയ്ക്കുന്നതിന് ആവശ്യമായ, കാഴ്ചയുമായി ബന്ധപ്പെട്ട വിൻഡോ ടോക്കൺ നൽകുന്നു.
onTouchEvent ടച്ച് സ്‌ക്രീൻ മോഷൻ ഇവൻ്റുകൾ കൈകാര്യം ചെയ്യുന്നു, പുറത്ത് ടച്ച് ചെയ്യുമ്പോൾ കീബോർഡ് മറയ്ക്കാൻ ഇവിടെ ഉപയോഗിക്കുന്നു.
findViewById EditText, Button എന്നിവ പോലുള്ള UI ഘടകങ്ങളെ റഫറൻസ് ചെയ്യാൻ ഉപയോഗിക്കുന്ന, തന്നിരിക്കുന്ന ഐഡി ഉപയോഗിച്ച് ഒരു കാഴ്‌ച കണ്ടെത്തുകയും തിരികെ നൽകുകയും ചെയ്യുന്നു.
setOnClickListener കാഴ്‌ച ക്ലിക്കുചെയ്യുമ്പോൾ വിളിക്കപ്പെടുന്ന ഒരു കോൾബാക്ക് സജ്ജീകരിക്കുന്നു, കീബോർഡ് മറയ്ക്കാൻ ട്രിഗർ ചെയ്യാൻ ഉപയോഗിക്കുന്നു.

നടപ്പാക്കൽ മനസ്സിലാക്കുന്നു

യുഐയുമായി സംവദിക്കുമ്പോൾ, പ്രത്യേകിച്ച് ഒരു ടെക്‌സ്‌റ്റ് നൽകിയതിന് ശേഷം, ആൻഡ്രോയിഡ് സോഫ്റ്റ് കീബോർഡ് എങ്ങനെ പ്രോഗ്രമാറ്റിക്കായി മറയ്‌ക്കാമെന്ന് നൽകിയിരിക്കുന്ന സ്‌ക്രിപ്റ്റുകൾ കാണിക്കുന്നു. EditText ഫീൽഡ് ക്ലിക്ക് ചെയ്ത് a Button. Java, Kotlin ഉദാഹരണങ്ങൾ നിരവധി പ്രധാന Android ഘടകങ്ങളും രീതികളും ഉപയോഗിക്കുന്നു. രണ്ട് സ്‌ക്രിപ്‌റ്റുകളും ആരംഭിക്കുന്നത് ആവശ്യമായ ക്ലാസുകൾ ഇമ്പോർട്ട് ചെയ്തുകൊണ്ടാണ് Activity, Context, InputMethodManager, കൂടാതെ വിവിധ UI ഘടകങ്ങളും. ൽ onCreate രീതി, findViewById ലിങ്ക് ചെയ്യാൻ ഉപയോഗിക്കുന്നു EditText ഒപ്പം Button ലേഔട്ട് മുതൽ കോഡ് വരെ. ദി setOnClickListener ട്രിഗർ ചെയ്യുന്നതിനായി ബട്ടണിൽ രീതി സജ്ജീകരിച്ചിരിക്കുന്നു hideKeyboard ക്ലിക്ക് ചെയ്യുമ്പോൾ പ്രവർത്തനം.

രണ്ട് നടപ്പാക്കലുകളിലും, ദി hideKeyboard ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു getSystemService വീണ്ടെടുക്കാൻ InputMethodManager സേവനം. രീതി hideSoftInputFromWindow എന്നോടൊപ്പം വിളിക്കുന്നു getWindowToken യുടെ EditText സോഫ്റ്റ് കീബോർഡ് മറയ്ക്കാൻ. കൂടാതെ, ദി onTouchEvent ഇൻപുട്ട് ഫീൽഡിന് പുറത്ത് ഉപയോക്താവ് സ്പർശിക്കുമ്പോൾ കീബോർഡ് മറഞ്ഞിരിക്കുന്നുവെന്ന് ഉറപ്പാക്കാൻ രീതി അസാധുവാക്കുന്നു. ഈ സമീപനം അനാവശ്യമായി കാഴ്ചയെ തടസ്സപ്പെടുത്തുന്നതിൽ നിന്ന് കീബോർഡിനെ തടയുന്നതിലൂടെ ഉപയോക്തൃ അനുഭവം മെച്ചപ്പെടുത്തുന്നു. ഈ രീതികൾ ഉപയോഗിക്കുന്നതിലൂടെയും ടച്ച് ഇവൻ്റുകൾ ഉചിതമായി കൈകാര്യം ചെയ്യുന്നതിലൂടെയും, സ്ക്രിപ്റ്റുകൾ ഒരു Android ആപ്ലിക്കേഷനിലെ സോഫ്റ്റ് കീബോർഡ് സ്വഭാവം കാര്യക്ഷമമായി കൈകാര്യം ചെയ്യുന്നു.

ആൻഡ്രോയിഡ് സോഫ്റ്റ് കീബോർഡ് ബട്ടൺ ക്ലിക്ക് ചെയ്ത് ഇൻപുട്ട് ഫീൽഡിന് പുറത്ത് സ്പർശിക്കുക

ആൻഡ്രോയിഡ് വികസനത്തിൽ ജാവ ഉപയോഗിക്കുന്നു

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
 
public class MainActivity extends Activity {
    private EditText editText;
    private Button button;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        editText = findViewById(R.id.editText);
        button = findViewById(R.id.button);
 
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                hideKeyboard();
            }
        });
    }
 
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        hideKeyboard();
        return super.onTouchEvent(event);
    }
 
    private void hideKeyboard() {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
    }
}

കോട്‌ലിൻ ഉപയോഗിച്ച് ആൻഡ്രോയിഡിൽ സോഫ്റ്റ് കീബോർഡ് ഡിസ്മിസൽ കൈകാര്യം ചെയ്യുന്നു

ആൻഡ്രോയിഡ് ആപ്പ് ഡെവലപ്മെൻ്റിനായി കോട്ലിൻ ഉപയോഗിക്കുന്നു

import android.app.Activity
import android.content.Context
import android.os.Bundle
import android.view.MotionEvent
import android.view.View
import android.view.inputmethod.InputMethodManager
import android.widget.Button
import android.widget.EditText
 
class MainActivity : Activity() {
    private lateinit var editText: EditText
    private lateinit var button: Button
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        editText = findViewById(R.id.editText)
        button = findViewById(R.id.button)
 
        button.setOnClickListener { hideKeyboard() }
    }
 
    override fun onTouchEvent(event: MotionEvent): Boolean {
        hideKeyboard()
        return super.onTouchEvent(event)
    }
 
    private fun hideKeyboard() {
        val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.hideSoftInputFromWindow(editText.windowToken, 0)
    }
}

കീബോർഡ് മാനേജ്മെൻ്റിനുള്ള നൂതന സാങ്കേതിക വിദ്യകൾ പര്യവേക്ഷണം ചെയ്യുന്നു

ആൻഡ്രോയിഡ് സോഫ്റ്റ് കീബോർഡ് മറയ്ക്കുന്നതിനുള്ള അടിസ്ഥാന രീതികൾക്കപ്പുറം, ഉപയോക്തൃ അനുഭവം മെച്ചപ്പെടുത്തുന്നതിന് ഡെവലപ്പർമാർക്ക് കൂടുതൽ വിപുലമായ സാങ്കേതിക വിദ്യകൾ നടപ്പിലാക്കാൻ കഴിയും. അത്തരം ഒരു രീതി ഉപയോഗിക്കുന്നത് ഉൾപ്പെടുന്നു TouchListeners ടച്ച് ഇവൻ്റുകൾ കണ്ടെത്തുന്നതിനും അതിനനുസരിച്ച് കീബോർഡ് മറയ്ക്കുന്നതിനും ഒന്നിലധികം യുഐ ഘടകങ്ങളിൽ. സ്‌ക്രീനിൻ്റെ പുറത്തുള്ള ഏതെങ്കിലും ഭാഗവുമായി ഉപയോക്താവ് സംവദിക്കുമ്പോഴെല്ലാം കീബോർഡ് മറഞ്ഞിരിക്കുന്നുവെന്ന് ഈ സമീപനം ഉറപ്പാക്കുന്നു EditText. കൂടാതെ, കീബോർഡ് ദൃശ്യപരത നിയന്ത്രിക്കുന്നത് ഫോക്കസിംഗ് ലോജിക്കിനൊപ്പം ചേർക്കാം, ഇവിടെ ഫോക്കസ് മാറ്റുന്നു EditText മറ്റൊരു ഘടകത്തിലേക്ക്, സ്വയമേവ മറയ്ക്കാൻ കീബോർഡിനെ പ്രേരിപ്പിക്കുന്നു.

ഉപയോഗിക്കുന്നത് മറ്റൊരു സാങ്കേതികതയാണ് View.OnFocusChangeListener ന് EditText. എപ്പോഴാണെന്ന് ഈ ശ്രോതാവിന് കണ്ടെത്താനാകും EditText ഫോക്കസ് നഷ്ടപ്പെടുകയും തുടർന്ന് കീബോർഡ് മറയ്ക്കുകയും ചെയ്യുന്നു. ഒന്നിലധികം ഇൻപുട്ട് ഫീൽഡുകൾ ഉൾപ്പെട്ടിരിക്കുന്ന ഫോമുകളിലോ ഡാറ്റാ എൻട്രി ആപ്ലിക്കേഷനുകളിലോ ഈ രീതി പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്. മാത്രമല്ല, കൂടുതൽ തടസ്സമില്ലാത്ത ഉപയോക്തൃ അനുഭവത്തിനായി, ഡവലപ്പർമാർക്ക് ജോലി ചെയ്യാൻ കഴിയും SoftKeyboardStateWatcher, കീബോർഡിൻ്റെ ദൃശ്യപരത നിലയിലെ മാറ്റങ്ങൾ ട്രാക്ക് ചെയ്യുകയും അതിനനുസരിച്ച് പ്രതികരിക്കുകയും ചെയ്യുന്ന ഒരു ഇഷ്‌ടാനുസൃത നടപ്പാക്കൽ. അത്തരം നൂതന സാങ്കേതിക വിദ്യകൾ സംയോജിപ്പിക്കുന്നതിലൂടെ, ഡവലപ്പർമാർക്ക് കൂടുതൽ അവബോധജന്യവും ഉപയോക്തൃ-സൗഹൃദവുമായ ആൻഡ്രോയിഡ് ആപ്ലിക്കേഷനുകൾ സൃഷ്ടിക്കാൻ കഴിയും.

ആൻഡ്രോയിഡ് സോഫ്റ്റ് കീബോർഡ് കൈകാര്യം ചെയ്യുന്നതിനുള്ള പതിവ് ചോദ്യങ്ങൾ

  1. കീബോർഡ് കാണിക്കുമ്പോഴോ മറച്ചിരിക്കുമ്പോഴോ എനിക്ക് എങ്ങനെ കണ്ടെത്താനാകും?
  2. നിങ്ങൾക്ക് എ ഉപയോഗിക്കാം SoftKeyboardStateWatcher കീബോർഡിൻ്റെ ദൃശ്യപരത മാറ്റങ്ങൾ ട്രാക്കുചെയ്യുന്നതിന്.
  3. ഒരു ഉപയോക്താവ് സ്ക്രോൾ ചെയ്യുമ്പോൾ കീബോർഡ് സ്വയമേവ മറയ്ക്കാൻ സാധിക്കുമോ?
  4. അതെ, നിങ്ങൾക്ക് എ നടപ്പിലാക്കാൻ കഴിയും OnScrollListener സ്ക്രോളിംഗ് സമയത്ത് കീബോർഡ് മറയ്ക്കാൻ സ്ക്രോൾ കാഴ്ചയിൽ.
  5. എപ്പോൾ എനിക്ക് കീബോർഡ് പ്രോഗ്രാമാറ്റിക് ആയി കാണിക്കാമോ EditText ശ്രദ്ധ കേന്ദ്രീകരിച്ചിട്ടുണ്ടോ?
  6. അതെ, ഉപയോഗിക്കുക InputMethodManager.showSoftInput എപ്പോൾ കീബോർഡ് കാണിക്കാൻ EditText ശ്രദ്ധ നേടുന്നു.
  7. ഉപയോക്താവ് ബാക്ക് ബട്ടൺ അമർത്തുമ്പോൾ ഞാൻ എങ്ങനെ കീബോർഡ് മറയ്ക്കും?
  8. അസാധുവാക്കുക onBackPressed രീതി ഉപയോഗിച്ച് കീബോർഡ് മറയ്ക്കുക InputMethodManager.
  9. എനിക്ക് കീബോർഡ് ലേഔട്ട് ഇഷ്ടാനുസൃതമാക്കാനാകുമോ?
  10. അതെ, Android ഇഷ്‌ടാനുസൃത കീബോർഡ് ലേഔട്ടുകൾ അനുവദിക്കുന്നു InputMethodService.
  11. കീബോർഡ് ഒരു ശകലത്തിൽ മറയ്ക്കാനുള്ള ഏറ്റവും നല്ല മാർഗം ഏതാണ്?
  12. ഉപയോഗിക്കുക getActivity().getSystemService ലഭിക്കാൻ InputMethodManager ഒരു ശകലത്തിൽ.
  13. ശകലങ്ങൾക്കിടയിൽ മാറുമ്പോൾ എനിക്ക് എങ്ങനെ കീബോർഡ് മറയ്ക്കാനാകും?
  14. എ നടപ്പിലാക്കുക FragmentTransaction സ്വിച്ച് സമയത്ത് കീബോർഡ് മറയ്ക്കാൻ ഒരു ശ്രോതാവിനൊപ്പം.
  15. കീബോർഡ് മറയ്ക്കുന്നത് ആനിമേറ്റ് ചെയ്യാൻ കഴിയുമോ?
  16. അതെ, നിങ്ങൾക്ക് അടങ്ങിയിരിക്കുന്ന കാഴ്ച ആനിമേറ്റ് ചെയ്യാം EditText ഒരു സുഗമമായ മറയ്ക്കൽ പ്രഭാവം സൃഷ്ടിക്കാൻ.

പ്രധാന ടേക്ക്അവേകളുടെ സംഗ്രഹം

അവബോധജന്യമായ ആപ്ലിക്കേഷനുകൾ സൃഷ്ടിക്കുന്നതിന് ആൻഡ്രോയിഡ് സോഫ്റ്റ് കീബോർഡ് ഫലപ്രദമായി കൈകാര്യം ചെയ്യുന്നത് നിർണായകമാണ്. InputMethodManager വീണ്ടെടുക്കാൻ getSystemService ഉപയോഗിക്കുന്നതിലൂടെയും കീബോർഡ് മറയ്ക്കുന്നതിന് SoftInputFromWindow മറയ്ക്കുന്നതിലൂടെയും, കീബോർഡ് ദൃശ്യമാകുമ്പോഴും അപ്രത്യക്ഷമാകുമ്പോഴും ഡവലപ്പർമാർക്ക് നിയന്ത്രിക്കാനാകും. സ്‌പർശനവും ക്ലിക്ക് ശ്രോതാക്കളും ഈ നിയന്ത്രണം കൂടുതൽ പരിഷ്‌ക്കരിക്കുന്നു, മറ്റ് UI ഘടകങ്ങളുമായി ഇടപഴകുമ്പോൾ കീബോർഡ് ഉചിതമായി മറയ്ക്കുന്നു. പ്രധാനപ്പെട്ട ഉള്ളടക്കത്തെയോ UI ഘടകങ്ങളെയോ തടസ്സപ്പെടുത്തുന്നതിൽ നിന്ന് കീബോർഡിനെ തടയുന്നതിലൂടെ ഈ സാങ്കേതിക വിദ്യകൾ ഉപയോക്തൃ അനുഭവം മെച്ചപ്പെടുത്തുന്നു.