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

时间:2011-08-03 14:22:04

标签: android keyboard

在以下屏幕截图中,我有一个图像,通过滚动视图 跟随 。 scrollview包含一个tablelayout,然后是一些edittext字段,后跟一个按钮

enter image description here

当我想在我的字段中输入值时,键盘会弹出,它会阻止我对字段的查看,如下所示:

enter image description here

如您所见,它阻止了我对edittext字段的看法。隐藏键盘是否有优雅的解决方案?如果没有,我会改变我的布局,但是我不知道该改变什么。我的布局如下:

<?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 个答案:

答案 0 :(得分:4)

我的第一个想法是转到模拟器中的设置:

设置 - &gt;语言和键盘 并取消选中“Android键盘”和其他奇怪的键盘,如果它们也被检查

答案 1 :(得分:1)

由于仿真器假设模仿手机上会看到的内容,因此如果您尝试在文本字段中输入值,则会弹出键盘。我知道这可能很烦人,但你不应该尝试在你的代码中禁用它,因为这会在手机上禁用它,然后用户将如何输入它们的输入?

此外,您可以按硬件后退按钮以在弹出键盘时将其解除。

答案 2 :(得分:1)

以编程方式,您可以通过

设置键盘禁用
public void removeKeyboard(EditText e, Context context){
    InputMethodManager keyB = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
    keyB.hideSoftInputFromWindow(e.getWindowToken(), 0);
}

其中EditText或其他一些视图要求输入文本

UPDATE! 如果您使用SearchView设置用户输入,我找到了一些简短的方法来关闭键盘

nameButton.clearFocus();