簡體   English   中英

如何禁用Android模擬器鍵盤彈出

[英]How can I disable the android emulator keyboard from popping up

在下面的屏幕截圖中,我有一個圖像, 后面是一個scrollview。 scrollview包含一個tablelayout,然后是一些edittext字段,后跟一個按鈕

在此輸入圖像描述

當我想在我的字段中輸入值時,鍵盤彈出並阻止我對字段的查看,如下所示:

在此輸入圖像描述

如您所見,它阻止了我對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>

我的第一個想法是去模擬器中的設置:

設置 - >語言和鍵盤並取消選中“Android鍵盤”和其他奇怪的鍵盤,如果它們也被選中

由於仿真器假設模擬手機上會看到的內容,因此如果您嘗試在文本字段中輸入值,則會彈出鍵盤。 我知道這可能很煩人,但你不應該嘗試在你的代碼中禁用它,因為這會在手機上禁用它,然后用戶將如何輸入他們的輸入?

此外,您可以按硬件后退按鈕以在彈出鍵盤時將其解除。

以編程方式,您可以設置鍵盤禁用

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();  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM