你可能会问为什么我想要那个.原因如下:
我使用条形码扫描仪作为我的应用程序的登录屏幕.但是,连接条形码扫描仪会强制我的平板电脑使用物理键盘(它认为扫描仪是键盘),这会阻止虚拟键盘出现(我想要其他一些屏幕).我必须手动单击系统栏以禁用弹出虚拟键盘的物理键盘.
那么,有没有办法在代码中禁用物理键盘或者即使连接了某些"键盘"也能使虚拟键盘出现?
adb shell input text "sometext"
Run Code Online (Sandbox Code Playgroud)
要么
adb shell input keyevent eventid
Run Code Online (Sandbox Code Playgroud)
这些是分别模拟虚拟/硬件键盘的实际输入吗?
我没有在developer.android.com/上找到这些命令的任何文档
这些命令有可靠的文档吗?
我注意到Android Market Application,当你点击搜索按钮时,它会显示键盘,但是当你点击back按钮时,搜索EditText变得不可见而且keyboard是隐藏的.问题是我EditText按下后退键后隐藏键盘后无法隐藏,因为我找不到隐藏键盘事件的监听器.我发现这个示例如何在Android中捕获"虚拟键盘显示/隐藏"事件?
但它在软键盘上不起作用.
我正在开发一个基于PhoneGap的应用程序,我搜索了很多关于如何在虚拟键盘出现时使我的webview调整其高度,或者至少获得虚拟键盘的高度.我发现了很多帖子(包括stackoverflow)
android:windowSoftInputMode="adjustResize"
Run Code Online (Sandbox Code Playgroud)
必须在清单中设置,我这样做了.我还发现,对于PhoneGap config.xml,有
<preference name="android-windowSoftInputMode" value="adjustResize"/>
Run Code Online (Sandbox Code Playgroud)
设置,我也粘贴了.我也尝试了两个参数的组合值'stateVisible | adjustResize'(不仅仅是'adjustResize'),但在我看来它们都没有效果.我不知道,也许我做错了,但你可以查看模拟器的截图(Android 4.0.3,但我也试过4.1.2和4.2.2):
http://screencast.com/ t/Mm0mw8c693 - 键盘可见
http://screencast.com/t/lZ2DomqeRR - 键盘隐藏
在屏幕截图中,我故意捕获了我的清单和config.xml设置,因此您可能会看到它们实际存在.
我甚至录制了短片 - http://screencast.com/t/xI9PMcMJxxx
正如您所看到的,当键盘显示/隐藏时,不会发生任何视口大小调整.我还使用console.log()检查了window.innerHeight,它对于可见和隐藏键盘都保持相同.
拜托,给我一些建议.
当我输入QLineEdit时,虚拟键盘以大写字母开头.即使我将其设置为小写,只要我输入单个字符,它就会返回大写.也就是说,每次键入一个字符时,键盘都会重置为大写.
即使在新创建的项目中也会发生这种情况(我只是进行了一次编辑并运行它).
我找到了一个关于同一问题的论坛帖子 - https://groups.google.com/forum/#!topic/android-qt/QMFZmkACAIA.
我正在使用Qt/C++(不是QML).
编辑:刚刚在一个新的QML项目上测试过它,那里也存在bug.我还发现了一个关于QML的帖子 - https://groups.google.com/forum/#!msg/android-qt/BzGDGoLNtYc/TdtOX9MW3vIJ.
编辑2:我使用inputMethodHints()测试,唯一有效的是ImhNoAutoUppercase.但是它仍然以一个大写字母开头,当按下后退按钮(删除最后一个字符)时,键盘将再次切换为大写,即使你输入了几个字母.在第一个字母后,它切换到小写,如果你没有按下后退按钮,它的工作原理很好.
好吧,我尝试构建一个富文本编辑器.我有一些按钮来格式化我的可编辑文本(粗体,斜体,URL等).
我使用谷歌键盘启用了所有文本更正选项(设置 > 语言和输入 > 谷歌键盘 > 文本更正).
我做以下事情:
我选择它并用SPAN_EXCLUSIVE_EXCLUSIVE(33)作为标志应用粗体.


好的,这是问题所在.我的大胆旗帜已经改变......为什么!?
这是一些日志:
D/ContentUtils: beforeTextChanged: start end span flags
D/ContentUtils: beforeTextChanged: 0 7 ChangeWatcher 8388626
D/ContentUtils: beforeTextChanged: 0 7 ChangeWatcher 6553618
D/ContentUtils: beforeTextChanged: 0 7 TextKeyListener 18
D/ContentUtils: beforeTextChanged: 0 7 SpanController 18
D/ContentUtils: beforeTextChanged: 7 7 START 546
D/ContentUtils: beforeTextChanged: 7 7 END 34
D/ContentUtils: beforeTextChanged: 0 7 SpellCheckSpan 33
D/ContentUtils: beforeTextChanged: 0 7 CustomBoldSpan 33
D/ContentUtils: onTextChaghed
D/ContentUtils: …Run Code Online (Sandbox Code Playgroud) 我的应用使用基于PIN的登录.我连续有四个EditText视图,并在每个视图上设置以下TextWatcher的单独实例:
private class PinDigitWatcher implements TextWatcher {
private final EditText digit;
public PinDigitWatcher(EditText digit) {
this.digit = digit;
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() <= 0)
return;
switch (digit.getId()) {
case R.id.pin_digit_a:
mPinDigitB.setFocusableInTouchMode(true);
mPinDigitB.requestFocus();
mPinDigitA.setFocusable(false);
break;
case R.id.pin_digit_b:
mPinDigitC.setFocusableInTouchMode(true);
mPinDigitC.requestFocus();
mPinDigitB.setFocusable(false);
break;
case R.id.pin_digit_c:
mPinDigitD.setFocusableInTouchMode(true);
mPinDigitD.requestFocus();
mPinDigitC.setFocusable(false);
break;
case R.id.pin_digit_d:
mPinDigitD.setFocusable(false);
onSubmitPin();
break;
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
@Override
public void onTextChanged(CharSequence s, int start, int before, …Run Code Online (Sandbox Code Playgroud) android android-keypad android-edittext android-virtual-keyboard samsung-mobile
虚拟键盘覆盖了文本输入,我看不到我正在输入的内容。如何避免这种情况?(我尝试使用 KeyboardAwareScrollView 但它仍然覆盖文本输入)。我遇到的另一个问题是关于我的 styles.container 属性 -> justifyContent 和alignItems 的错误 - 它说将它们放在 ScrollView 属性内 - 我不知道如何做到这一点 - 我是 React Native 的新手。
render() {
return (
<KeyboardAwareScrollView>
<View style={styles.container} >
<TextInput
style={styles.input}
underlineColorAndroid="transparent"
placeholder="username"
placeholderTextColor="#00bcd4"
autoCapitalize="none"
secureTextEntry={true}
onChangeText={username => this.setState({ username })}
/>
<View style={styles.btnContainer}>
<TouchableOpacity style={styles.userBtn} onPress={() => this.Login(this.state.email, this.state.password)}>
<Text style={styles.btnTxt}>Login</Text>
</TouchableOpacity>
</View>
</View>
</KeyboardAwareScrollView>
Run Code Online (Sandbox Code Playgroud)
对于 KeyboardAvoidingView 也有同样的事情:
render() {
return (
// <View style={styles.container} >
<KeyboardAvoidingView behavior="padding" style={styles.container}>
<Text style={styles.heading} >Welcome to SelfCare !</Text>
<Image
style={{width: 200, height: 200, …Run Code Online (Sandbox Code Playgroud) android textinput scrollview android-virtual-keyboard react-native
如果我点击我的EditText,虚拟键盘就不会显示出来了.显示光标,但没有键入键盘.
我甚至尝试手动打开但没有作品.
这是我的代码:
public class CreateNote extends Activity {
EditText titleEdit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.createnote);
titleEdit = (EditText) findViewById(R.id.titleEdit);
titleEdit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
InputMethodManager imm = (InputMethodManager) CreateNote.this
.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(titleEdit, 0);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
布局片段:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#989898" >
<EditText
android:id="@+id/titleEdit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/edittextdrawale"
android:ems="10"
android:textColor="#fff"
android:textColorHint="#fff" >
<requestFocus />
</EditText>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
玩隐藏和寻找我的虚拟键盘的原因是什么?我在真实设备上测试,而不是在模拟器上测试.
我正在使用支持库处理碎片并在片段中嵌套片段.
我有一个场景,我在现有片段中添加一个新片段(包含一个EditText).当用户点击EditText时,会显示虚拟键盘.但是当键盘打开时,用户可以按下ActionBar中的主页按钮,从堆栈中删除片段,但键盘仍然保持打开状态.我无法强行关闭键盘,我尝试了所有代码片段.鉴于所描述的情景,任何人都可以指导我如何解决这个问题?
编辑:我做了一个回调函数,我从片段onDestroy调用.承载所有片段的MainActivity实现此回调:
@Override
public void onHideSoftKeyboard(EditText editText) {
// HIDE SOFT KEYBOARD HERE
final InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
Toast.makeText(this,"KEYBOARD HIDDEN",Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
我收到Toast消息,并且在后退按钮(ActionBar后退按钮)上销毁了片段,只有键盘仍然存在.
@Override
public void onDestroy() {
hideSoftKeyboard.onHideSoftKeyboard(editTextComment);
super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud) android android-softkeyboard android-fragments android-virtual-keyboard
我是Android开发的新手.我的要求是,当我点击EditText小部件的外部时,我想隐藏android虚拟键盘.请帮忙.
我正在学习本教程.
代码工作正常editText.但现在我有很多(近10个)EditText领域.如果我为每个字段重复此代码,代码将是冗长的.任何人都可以告诉我如何在任何字段外点击时禁用虚拟键盘?
我在Linearlayout中有两个EditText视图和一个Button.完成edittext中的写入后,我想隐藏Android虚拟键盘,我该怎么做?
android android-softkeyboard android-edittext android-virtual-keyboard