एंड्रॉइड कीबोर्ड छुपाने का परिचय
एंड्रॉइड एप्लिकेशन विकसित करते समय, कई बार आपको सॉफ्ट कीबोर्ड को प्रोग्रामेटिक रूप से छिपाने की आवश्यकता होती है। यह विशेष रूप से तब उपयोगी होता है जब आपके लेआउट में एक EditText और एक बटन होता है और आप चाहते हैं कि बटन पर क्लिक करने के बाद कीबोर्ड गायब हो जाए।
इस गाइड में, हम इस कार्यक्षमता को प्राप्त करने के सरल और प्रभावी तरीकों का पता लगाएंगे। दिए गए चरणों का पालन करके, आप कीबोर्ड दृश्यता को कुशलतापूर्वक प्रबंधित करके अपने ऐप के उपयोगकर्ता अनुभव को बढ़ाने में सक्षम होंगे।
आज्ञा | विवरण |
---|---|
getSystemService | नाम से सिस्टम-स्तरीय सेवा पुनर्प्राप्त करता है; यहां, इसका उपयोग कीबोर्ड को प्रबंधित करने के लिए InputMethodManager प्राप्त करने के लिए किया जाता है। |
hideSoftInputFromWindow | पैरामीटर के रूप में टोकन और फ़्लैग लेते हुए, सॉफ्ट कीबोर्ड को विंडो से छुपाता है। |
getCurrentFocus | गतिविधि में वर्तमान केंद्रित दृश्य लौटाता है, जिसका उपयोग यह निर्धारित करने के लिए किया जाता है कि कीबोर्ड को कहां छिपाना चाहिए। |
onClickListener | एक कॉलबैक सेट करता है जो किसी दृश्य (उदाहरण के लिए, बटन) पर क्लिक करने पर ट्रिगर होता है। |
dispatchTouchEvent | टच स्क्रीन मोशन इवेंट को विंडो पर भेजे जाने से पहले इंटरसेप्ट करता है, जो कस्टम टच हैंडलिंग के लिए उपयोगी है। |
windowToken | एक टोकन लौटाता है जो दृश्य से जुड़ी विंडो की विशिष्ट पहचान करता है, जो कीबोर्ड को छिपाने के लिए आवश्यक है। |
एंड्रॉइड कीबोर्ड को छिपाने का तरीका समझना
जावा उदाहरण में, स्क्रिप्ट पहले आवश्यक कक्षाएं आयात करती है जैसे InputMethodManager, View, और EditText. onCreate विधि लेआउट सेट करती है और प्रारंभ करती है EditText और Button. जब बटन क्लिक किया जाता है, hideKeyboard विधि कहलाती है. इस विधि का उपयोग करके वर्तमान केंद्रित दृश्य को पुनः प्राप्त किया जाता है getCurrentFocus, और यदि कोई दृश्य केंद्रित है, तो इसका उपयोग होता है InputMethodManager सॉफ्ट कीबोर्ड को कॉल करके छुपाना hideSoftInputFromWindow. बटन क्लिक करने पर यह प्रभावी रूप से कीबोर्ड बंद कर देता है।
कोटलिन उदाहरण में, समान कार्यक्षमता प्राप्त की जाती है। स्क्रिप्ट इसे ओवरराइड करती है onCreate सामग्री दृश्य सेट करने और प्रारंभ करने की विधि EditText और Button. बटन क्लिक श्रोता कॉल करता है hideKeyboard तरीका। इसके अतिरिक्त, dispatchTouchEvent बाहर छूने पर कीबोर्ड को छिपाने के लिए विधि को ओवरराइड किया गया है। यह विधि जांच करती है कि कोई दृश्य केंद्रित है या नहीं और कीबोर्ड का उपयोग करके छुपाता है InputMethodManager. ये स्क्रिप्ट सॉफ्ट कीबोर्ड की दृश्यता को कुशलतापूर्वक प्रबंधित करके उपयोगकर्ता अनुभव को बढ़ाती हैं।
एंड्रॉइड सॉफ्ट कीबोर्ड को प्रोग्रामेटिक रूप से बंद करना
Android विकास के लिए जावा
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);
}
}
}
बाहर छूने पर कीबोर्ड छिपा दें
Android विकास के लिए कोटलिन
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.
- क्या मैं स्वचालित रूप से कीबोर्ड दिखा सकता हूँ जब a EditText फोकस प्राप्त होता है?
- हाँ, प्रयोग करें InputMethodManager.showSoftInput में onFocusChange श्रोता.
- मैं कीबोर्ड को एक टुकड़े में कैसे छुपा सकता हूँ?
- पुकारना InputMethodManager.hideSoftInputFromWindow खंड के दृश्य के संदर्भ में।
- क्या है android:windowSoftInputMode के लिए इस्तेमाल होता है?
- यह निर्दिष्ट करता है कि कीबोर्ड गतिविधि के लेआउट के साथ कैसे इंटरैक्ट करता है, जैसे आकार बदलना या छिपा रहना।
- किसी बाहरी चीज़ को छूते समय मैं कीबोर्ड को कैसे छिपाऊं? EditText?
- अवहेलना dispatchTouchEvent अपनी गतिविधि में बाहर स्पर्श घटनाओं की जाँच करने के लिए EditText.
- क्या मैं कीबोर्ड को छुपे रहने के लिए बाध्य कर सकता हूँ?
- हाँ, सेटिंग करके android:windowSoftInputMode को stateHidden प्रकट में.
- मैं कैसे पता लगाऊं कि कीबोर्ड वर्तमान में दृश्यमान है?
- उपयोग getWindowVisibleDisplayFrame स्क्रीन के दृश्य क्षेत्र की तुलना रूट दृश्य की ऊंचाई से करने के लिए।
- क्या एक बटन क्लिक पर कीबोर्ड को प्रोग्रामेटिक रूप से छिपाना संभव है?
- हाँ, कॉल करें InputMethodManager.hideSoftInputFromWindow बटन में onClickListener.
एंड्रॉइड कीबोर्ड को छिपाने पर मुख्य बातें
अंत में, आपके एप्लिकेशन में उपयोगकर्ता अनुभव को बढ़ाने के लिए एंड्रॉइड सॉफ्ट कीबोर्ड को प्रबंधित करना महत्वपूर्ण है। का उपयोग करके InputMethodManager, आप बटन क्लिक या स्पर्श घटनाओं जैसे उपयोगकर्ता इंटरैक्शन के आधार पर कीबोर्ड को प्रोग्रामेटिक रूप से छिपा या दिखा सकते हैं। इसके अतिरिक्त, कॉन्फ़िगर करना android:windowSoftInputMode आपकी मेनिफेस्ट फ़ाइल में विशेषता आपको कीबोर्ड के व्यवहार को अधिक सटीक रूप से नियंत्रित करने की अनुमति देती है। इन तरीकों को लागू करने से यह सुनिश्चित होता है कि कीबोर्ड की उपस्थिति ऐप की उपयोगिता में हस्तक्षेप नहीं करती है, जिससे उपयोगकर्ताओं के लिए एक सहज और सहज इंटरफ़ेस प्रदान होता है।