在我的登录表单中,当用户单击EditText并按下回车键时,会插入一个新行,从而增加EditText的大小.下一刻,它返回到之前的位置并在密码字段中打印一个点(这是下一个字段).
我想从软键盘中删除此回车键.可能吗?
我想不出如何实现onKeyPreIme(int keyCode, KeyEvent event)的Fragment.
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK &&
event.getAction() == KeyEvent.ACTION_UP) {
// do your stuff
return false;
}
return super.dispatchKeyEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
我尝试了很多,但没有任何作用.另外,我在Google或Stack Overflow上找不到任何内容.我想在按下后退键并且软键盘启动时执行操作.设置onKeyListener我的EditTexts不起作用,因为KeyEvent.KEYCODE_BACK当软键盘启动时不会调用.我感谢任何帮助和源代码.
我希望键盘上的一些键与其他键不同.
例如,如下图中的shift,delete,space键:

根据谷歌的参考文件.我们可以通过android:keybackground=@drawable/xxx在" input.xml"中使用" " 更改键的背景,但它会改变键盘中所有键的背景.
虽然qwerty.xml中的"android:keyicon"可以改变单个键,但它只替换标签.同时,使用" android:keyicon",图像无法覆盖整个按键,图像将比按键背景小一点.
更改某些键背景的正确方法是什么?
我试图在phonegap上检测showKeyboard和hidekeyboard事件.为此,在deviceready事件中我放置了以下代码:
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
// deviceready Event Handler
//
// The scope of 'this' is the event. In order to call the 'receivedEvent'
// function, we must explicity call 'app.receivedEvent(...);'
onDeviceReady: function() {
document.addEventListener("menubutton",app.onMenuKeyPress,false);
document.addEventListener("backbutton",navigateBack,false);
document.addEventListener("hidekeyboard", onKeyboardHide, false);
document.addEventListener("showkeyboard", onKeyboardShow, false);
},
Run Code Online (Sandbox Code Playgroud)
这里后退按钮事件被解雇和罚款,但工作hidekeyboard和showkeyboard事件从未被触发.
为了检测它,我尝试使用window.onresize在浏览器中工作的事件.以下是其代码:
window.onresize = function(){
var screenHeight = $(window).height();
alert(screenHeight);
var diff = screenInitialHeight - screenHeight;
var newHeight = screenInitialHeight-diff;
alert(newHeight);
$('#mainpage').height(newHeight);
$('#nav_container').height(newHeight);
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码也没有在show或hide键盘上执行.此功能仅在首次应用时执行.开始了.我在某些地方看到,对于某些人来说这些事件正在发挥作用,所以我觉得我身边有一些问题,可能是在一些配置文件等等.所以下面是androidmanifest.xml代码:
<?xml version='1.0' encoding='utf-8'?> …Run Code Online (Sandbox Code Playgroud) javascript-events android-softkeyboard android-event cordova cordova-3
我在清单中使用了android:windowSoftInputMode ="adjustResize"来防止键盘隐藏活动按钮.它可以工作,但是当键盘打开时,我的按钮会向上移动.它有点跳跃,我想知道 - 我可以有任何动画来顺利过渡吗?
<activity
android:name=".Activity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize">
</activity>
Run Code Online (Sandbox Code Playgroud) 我有一个EditText组件,当然,如果你点击它,会显示Android键盘,允许用户输入文本.据我所知,所有Android软件键盘都有(至少)字母模式(ABC)和符号模式(?123).他们的默认视图是字母模式.
现在,当EditText单击组件时显示键盘时,我希望默认显示符号模式.用户仍然可以切换到字母模式.

有没有办法实现这一目标?如果有,怎么样?
android android-keypad android-softkeyboard android-inputtype
我有以下代码用于我的edittext格式,因为它可以接受任何输入我没有设置任何输入类型:
if (cardNumberEditText != null) {
cardNumberEditText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
int currSel = cardNumberEditText.getSelectionStart();
cardNumberEditText.removeTextChangedListener(textWatcher);
.
.
cardNumberEditText.setText(formattedNumber);
.
.
cardNumberEditText.setSelection(currSel);
cardNumberEditText.addTextChangedListener(textWatcher);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
所以最初我得到的默认输入类型是ABC,现在当我将其更改为?123(使用ABC/123?toggel按钮)时,输入一些数字后键盘会变回ABC.这个代码可以在三星设备s3和sywpe上正常工作,但不能在L和HTC上使用nexus
当我评论onTextChanged中的所有代码时,它工作正常.因此,当我调查时,我发现罪魁祸首是cardNumberEditText.setText(formattedNumber);
我没有设置任何输入类型,我只是使用键盘上的ABC /?123切换键进行切换
任何帮助/建议为什么会发生这种情况(在少数设备上),我该如何纠正?
我使用TYPE_APPLICATION_PANEL在软键盘上面添加WindowManager视图,但它在某些手机上不起作用,也不适用于TYPE_SYSTEM_ALERT.我应该怎么做才能在所有手机上实现?
最初我使用以下代码将我的Activity设置为沉浸模式:
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
Run Code Online (Sandbox Code Playgroud)
一切正常,直到用户点击EditText并出现软键盘.它会导致状态栏粘在顶部,即使在软键盘消失后也不会再次隐藏.奇怪的是,我只在LG /三星手机上遇到过这个问题,索尼手机对此没有任何问题.有人对此有任何想法吗?
android android-softkeyboard android-edittext android-statusbar android-immersive
我有一个FragmentActivity,最初显示一个片段,上面有几个按钮.单击其中一个按钮时,FragmentActivity将显示一个包含某些editText字段的新片段.当我显示带有editText字段的新片段时,我似乎无法显示软输入键盘.
在清单上使用windowSoftInput模式,因为它立即显示键盘.
android:windowSoftInputMode="stateUnchanged"
Run Code Online (Sandbox Code Playgroud)
我试过用
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
无济于事.以下是我在Activity中显示新片段的方法:
public void clickHandler(View view) {
switch (view.getId()) {
case R.id.login:
loginFragment = new LoginFragment();
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
transaction.replace(R.id.fragment_container, loginFragment);
transaction.addToBackStack(null);
transaction.commit();
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
break;
Run Code Online (Sandbox Code Playgroud)
...
我也尝试从片段的onCreate中调用setSoftInputMode,但是效果不佳.认为这是一个时间问题,我用handler.postDelayed尝试了它,但也没有用.它看起来像这样:
onResume...
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}
};
handler.postDelayed(runnable, 1000);
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.谢谢.