Android ಕೀಬೋರ್ಡ್ ಮರೆಮಾಡಲು ಪರಿಚಯ
ಆಂಡ್ರಾಯ್ಡ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವಾಗ, ನೀವು ಸಾಫ್ಟ್ ಕೀಬೋರ್ಡ್ ಅನ್ನು ಪ್ರೋಗ್ರಾಮಿಕ್ ಆಗಿ ಮರೆಮಾಡಬೇಕಾದ ಸಂದರ್ಭಗಳಿವೆ. ನಿಮ್ಮ ಲೇಔಟ್ನಲ್ಲಿ ನೀವು ಎಡಿಟ್ಟೆಕ್ಸ್ಟ್ ಮತ್ತು ಬಟನ್ ಅನ್ನು ಹೊಂದಿರುವಾಗ ಮತ್ತು ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದ ನಂತರ ಕೀಬೋರ್ಡ್ ಕಣ್ಮರೆಯಾಗಬೇಕೆಂದು ಬಯಸಿದಾಗ ಇದು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ.
ಈ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ, ಈ ಕಾರ್ಯವನ್ನು ಸಾಧಿಸಲು ನಾವು ಸರಳ ಮತ್ತು ಪರಿಣಾಮಕಾರಿ ಮಾರ್ಗಗಳನ್ನು ಅನ್ವೇಷಿಸುತ್ತೇವೆ. ಒದಗಿಸಿದ ಹಂತಗಳನ್ನು ಅನುಸರಿಸುವ ಮೂಲಕ, ಕೀಬೋರ್ಡ್ ಗೋಚರತೆಯನ್ನು ಸಮರ್ಥವಾಗಿ ನಿರ್ವಹಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನ ಬಳಕೆದಾರರ ಅನುಭವವನ್ನು ಹೆಚ್ಚಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ.
ಆಜ್ಞೆ | ವಿವರಣೆ |
---|---|
getSystemService | ಹೆಸರಿನ ಮೂಲಕ ಸಿಸ್ಟಮ್-ಮಟ್ಟದ ಸೇವೆಯನ್ನು ಹಿಂಪಡೆಯುತ್ತದೆ; ಇಲ್ಲಿ, ಕೀಬೋರ್ಡ್ ನಿರ್ವಹಣೆಗಾಗಿ ಇನ್ಪುಟ್ಮೆಥಡ್ಮ್ಯಾನೇಜರ್ ಅನ್ನು ಪಡೆಯಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. |
hideSoftInputFromWindow | ವಿಂಡೋದಿಂದ ಮೃದುವಾದ ಕೀಬೋರ್ಡ್ ಅನ್ನು ಮರೆಮಾಡುತ್ತದೆ, ಟೋಕನ್ ಮತ್ತು ಫ್ಲ್ಯಾಗ್ಗಳನ್ನು ಪ್ಯಾರಾಮೀಟರ್ಗಳಾಗಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. |
getCurrentFocus | ಚಟುವಟಿಕೆಯಲ್ಲಿ ಪ್ರಸ್ತುತ ಕೇಂದ್ರೀಕೃತ ವೀಕ್ಷಣೆಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ, ಕೀಬೋರ್ಡ್ ಎಲ್ಲಿಂದ ಮರೆಮಾಡಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. |
onClickListener | ವೀಕ್ಷಣೆಯನ್ನು (ಉದಾ. ಬಟನ್) ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಪ್ರಚೋದಿಸುವ ಕಾಲ್ಬ್ಯಾಕ್ ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ. |
dispatchTouchEvent | ಟಚ್ ಸ್ಕ್ರೀನ್ ಮೋಷನ್ ಈವೆಂಟ್ಗಳನ್ನು ವಿಂಡೋಗೆ ಕಳುಹಿಸುವ ಮೊದಲು ಪ್ರತಿಬಂಧಿಸುತ್ತದೆ, ಕಸ್ಟಮ್ ಸ್ಪರ್ಶ ನಿರ್ವಹಣೆಗೆ ಉಪಯುಕ್ತವಾಗಿದೆ. |
windowToken | ಕೀಬೋರ್ಡ್ ಅನ್ನು ಮರೆಮಾಡಲು ಅಗತ್ಯವಿರುವ ವೀಕ್ಷಣೆಗೆ ಸಂಬಂಧಿಸಿದ ವಿಂಡೋವನ್ನು ಅನನ್ಯವಾಗಿ ಗುರುತಿಸುವ ಟೋಕನ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. |
Android ಕೀಬೋರ್ಡ್ ಅನ್ನು ಹೇಗೆ ಮರೆಮಾಡುವುದು ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು
ಜಾವಾ ಉದಾಹರಣೆಯಲ್ಲಿ, ಸ್ಕ್ರಿಪ್ಟ್ ಮೊದಲು ಅಗತ್ಯವಿರುವ ವರ್ಗಗಳನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳುತ್ತದೆ 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);
}
}
}
ಹೊರಗೆ ಸ್ಪರ್ಶಿಸಿದ ನಂತರ ಕೀಬೋರ್ಡ್ ಅನ್ನು ಮರೆಮಾಡಿ
ಆಂಡ್ರಾಯ್ಡ್ ಅಭಿವೃದ್ಧಿಗಾಗಿ ಕೋಟ್ಲಿನ್
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 ನಿಮ್ಮ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಫೈಲ್ನಲ್ಲಿರುವ ಗುಣಲಕ್ಷಣವು ಕೀಬೋರ್ಡ್ನ ನಡವಳಿಕೆಯನ್ನು ಹೆಚ್ಚು ನಿಖರವಾಗಿ ನಿಯಂತ್ರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಈ ವಿಧಾನಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದರಿಂದ ಕೀಬೋರ್ಡ್ನ ಉಪಸ್ಥಿತಿಯು ಅಪ್ಲಿಕೇಶನ್ನ ಉಪಯುಕ್ತತೆಗೆ ಅಡ್ಡಿಯಾಗುವುದಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ, ಬಳಕೆದಾರರಿಗೆ ಮೃದುವಾದ ಮತ್ತು ಅರ್ಥಗರ್ಭಿತ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ.