ஆண்ட்ராய்டு கீபோர்டை மறைப்பதற்கான அறிமுகம்
ஆண்ட்ராய்டு அப்ளிகேஷன்களை உருவாக்கும் போது, மென்மையான விசைப்பலகையை நிரல் ரீதியாக மறைக்க வேண்டிய நேரங்கள் உள்ளன. உங்கள் தளவமைப்பில் எடிட்டெக்ஸ்ட் மற்றும் பட்டன் இருந்தால், பொத்தானைக் கிளிக் செய்த பிறகு விசைப்பலகை மறைந்துவிட வேண்டும் என விரும்பினால் இது மிகவும் பயனுள்ளதாக இருக்கும்.
இந்த வழிகாட்டியில், இந்த செயல்பாட்டை அடைய எளிய மற்றும் பயனுள்ள வழிகளை ஆராய்வோம். வழங்கப்பட்ட படிகளைப் பின்பற்றுவதன் மூலம், கீபோர்டு தெரிவுநிலையை திறமையாக நிர்வகிப்பதன் மூலம் உங்கள் பயன்பாட்டின் பயனர் அனுபவத்தை மேம்படுத்த முடியும்.
கட்டளை | விளக்கம் |
---|---|
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 கவனத்தைப் பெறுகிறது அல்லது வெவ்வேறு UI கூறுகளுக்கு இடையில் செல்லும்போது அது மறைவதை உறுதிப்படுத்துகிறது. இதைப் பயன்படுத்தி அடையலாம் InputMethodManager போன்ற வாழ்க்கை சுழற்சி அழைப்புகள் சேர்த்து onResume மற்றும் onPause.
மேலும், நீங்கள் விசைப்பலகை நடத்தையை சரிசெய்வதன் மூலம் கட்டுப்படுத்தலாம் android:windowSoftInputMode உங்கள் செயல்பாட்டின் மேனிஃபெஸ்ட் கோப்பில் உள்ள பண்பு. விசைப்பலகை செயல்பாட்டின் தளவமைப்பைச் சரிசெய்ய வேண்டுமா அல்லது வெளிப்படையாகக் கோரும் வரை மறைக்கப்பட வேண்டுமா என்பதைக் குறிப்பிட இந்தப் பண்புக்கூறு உங்களை அனுமதிக்கிறது. இந்த உள்ளமைவுகளைப் பயன்படுத்துவது, மிகவும் உள்ளுணர்வு மற்றும் பதிலளிக்கக்கூடிய இடைமுகத்தை வழங்குவதன் மூலம் பயனர் அனுபவத்தை கணிசமாக மேம்படுத்தலாம்.
Android விசைப்பலகையை மறைப்பது பற்றிய பொதுவான கேள்விகள்
- ஒரு போது விசைப்பலகையை எவ்வாறு மறைப்பது EditText கவனம் இழக்கிறதா?
- நீங்கள் மேலெழுதலாம் onFocusChange கேட்பவர் EditText மற்றும் அழைப்பு InputMethodManager.hideSoftInputFromWindow.
- ஒரு போது நான் தானாக விசைப்பலகை காட்ட முடியும் EditText கவனம் பெறுகிறதா?
- ஆம், பயன்படுத்தவும் InputMethodManager.showSoftInput இல் onFocusChange கேட்பவர்.
- கீபோர்டை ஒரு துண்டில் எப்படி மறைப்பது?
- அழைப்பு InputMethodManager.hideSoftInputFromWindow துண்டின் பார்வையின் சூழலில்.
- என்ன android:windowSoftInputMode பயன்படுத்தப்பட்டது?
- மறுஅளவிடுதல் அல்லது மறைந்திருப்பது போன்ற செயல்பாட்டின் தளவமைப்புடன் விசைப்பலகை எவ்வாறு தொடர்பு கொள்கிறது என்பதை இது குறிப்பிடுகிறது.
- வெளியே தொடும்போது விசைப்பலகையை எப்படி மறைப்பது? EditText?
- மேலெழுதவும் dispatchTouchEvent வெளியே தொடுதல் நிகழ்வுகளை சரிபார்க்க உங்கள் செயல்பாட்டில் EditText.
- விசைப்பலகையை மறைத்து வைத்திருக்கும்படி கட்டாயப்படுத்தலாமா?
- ஆம், அமைப்பதன் மூலம் android:windowSoftInputMode செய்ய stateHidden வெளிப்படையாக.
- விசைப்பலகை தற்போது தெரிகிறதா என்பதை எவ்வாறு கண்டறிவது?
- பயன்படுத்தவும் getWindowVisibleDisplayFrame திரையின் புலப்படும் பகுதியை ரூட் வியூவின் உயரத்துடன் ஒப்பிடுவதற்கு.
- ஒரு பொத்தானைக் கிளிக் செய்வதன் மூலம் விசைப்பலகையை நிரல் ரீதியாக மறைக்க முடியுமா?
- ஆம், அழைக்கவும் InputMethodManager.hideSoftInputFromWindow பொத்தான்களில் onClickListener.
Android விசைப்பலகையை மறைப்பதற்கான முக்கிய குறிப்புகள்
முடிவில், உங்கள் பயன்பாட்டில் பயனர் அனுபவத்தை மேம்படுத்துவதற்கு Android மென்மையான விசைப்பலகையை நிர்வகிப்பது மிகவும் முக்கியமானது. பயன்படுத்தி InputMethodManager, பொத்தான் கிளிக்குகள் அல்லது டச் நிகழ்வுகள் போன்ற பயனர் தொடர்புகளின் அடிப்படையில் நீங்கள் விசைப்பலகையை நிரல் ரீதியாக மறைக்கலாம் அல்லது காட்டலாம். கூடுதலாக, கட்டமைத்தல் android:windowSoftInputMode உங்கள் மேனிஃபெஸ்ட் கோப்பில் உள்ள பண்புக்கூறு விசைப்பலகையின் நடத்தையை மிகவும் துல்லியமாக கட்டுப்படுத்த உங்களை அனுமதிக்கிறது. இந்த முறைகளைச் செயல்படுத்துவது, விசைப்பலகையின் இருப்பு பயன்பாட்டின் பயன்பாட்டிற்கு இடையூறு ஏற்படுத்தாது, பயனர்களுக்கு மென்மையான மற்றும் உள்ளுணர்வு இடைமுகத்தை வழங்குகிறது.