如何禁用Android模拟器键盘弹出

4
在下面的截图中,我有一张图片,后面是一个滚动视图。滚动视图包含一个表格布局,然后是一些编辑文本字段,最后是一个按钮。
当我想要输入值到我的字段中时,键盘会弹出来挡住了我对字段的视图,如下所示:
如您所见,它挡住了我对编辑文本字段的视图。是否有一种简洁的解决方法来隐藏键盘?如果没有,我将改变我的布局,但我不知道该怎么改变。我的布局如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#CCCCCC"
    android:weightSum="1" android:id="@+id/llid">
    <TextView ... >
    </TextView> 
    <!-- Image inserted here as an ImageView from my code -->
    <ScrollView 
        android:id="@+id/svid"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="3dp">
        <LinearLayout>
            <TableLayout ... >
                <TableRow>
                    <TextView ... />
                    <TextView ... />            
                </TableRow>
                <TableRow>
                    <TextView ... />
                    <TextView ... />            
                </TableRow> 
                <TableRow>
                    <TextView ... />
                    <TextView ... />            
                </TableRow>                         
            </TableLayout>
            <EditText>  
            ...
            </EditText>
            <EditText>  
            ...
            </EditText> 
            <EditText>  
            ...
            </EditText> 
            <Button>  
            ...
            </Button>                                           
        </LinearLayout>
    </ScrollView>   
</LinearLayout>
3个回答

7

我的第一个想法是进入模拟器中的设置:

设置 -> 语言和键盘 然后取消选中“Android键盘”和其他奇怪的选项


这个路径是什么?我已经进入了“菜单 -> 设置 -> 语言和键盘”。“Android键盘”被取消选中了。我还取消了“菜单 -> 设置 -> 语言和键盘 -> Android键盘设置”下的每个选项,但没有成功。 - Joeblackdev
当我在edittext字段中输入值时,它最初不会显示出来。但是,当我移动到下一个edittext字段并输入值时,键盘仍然会弹出:S - Joeblackdev
我已经更新了我的帖子,以更准确地反映我的问题。感谢任何帮助。 - Joeblackdev
似乎这只是一件无法修复的烦恼...因为即使你在模拟器中禁用它,也无法为用户禁用它。 - IZI_Shadow_IZI

3

由于模拟器的目的是模拟手机上的操作体验,因此当您尝试向文本字段中输入值时键盘就会弹出来,这是很合理的。我知道它可能会让人感到恼火,但是您不应该在代码中禁用它,因为那样会禁用手机上的键盘,那么用户如何输入他们的内容呢?

此外,您可以按下硬件返回按钮以关闭弹出的键盘。


这个应用程序只是一个原型,所以我正在使用模拟器。我不会在手机上运行它。这只是一个测试应用程序,所以我不关心在手机上运行它。 - Joeblackdev
猜测用户意图并采用其他社交工程手段来回避问题并不被视为答案。 - Pica

1

你可以通过编程来禁用键盘:

public void removeKeyboard(EditText e, Context context){
    InputMethodManager keyB = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
    keyB.hideSoftInputFromWindow(e.getWindowToken(), 0);
}

其中EditText e或其他调用文本输入的视图

更新! 如果您使用SearchView设置用户输入,我发现只需一些简短的方法即可关闭键盘

nameButton.clearFocus();  

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接