2012-01-20 69 views
1

你好同伴開發者,Android autoCompleteTextView隨屏幕大小而變化?

我有一個關於autocompletetextview的問題。我正在開發平板電腦,並且我很好地定製了它。當我在平板電腦上運行它時,它看起來像這樣: Tablet view

這實際上是我想要的 - 所有可見的小物件,藍色而不是橙色。涼。 這是當我運行一個小的設備上完全相同的應用程序會發生什麼,例如一臺Nexus-S:

Nexus view

的獨到見解消失,有橙色的東西,我只看到一個建議的項目一次或兩次最好。這不是我想要的。

如果我不是在風景中運行這個應用程序,但在肖像,所有工作正常。瘋。 有誰知道我能做些什麼來保持自定義佈局在小屏幕上?

+0

那麼,在Nexus S本身,這在縱向模式下運行良好嗎?並在景觀模式中混亂吧? – Ghost

+0

恰恰是這種情況! –

+0

那麼在這種情況下,請爲景觀設計單獨的佈局,並將它們放入res文件夾內的layout-land文件夾中。 – Ghost

回答

1

此處顯示的第二張圖像是設備處於橫向模式時自動完成文本視圖或編輯文本的結果。

如果設備處於肖像模式,它將在垂直列表中顯示建議,對於橫向模式,它將顯示在水平列表中,並嘗試用編輯文本和軟鍵盤填充整個屏幕。

我也面臨同樣的問題,請查看Android開發者網站了解有關支持多屏幕的信息,它可能會對您有所幫助。

新建答案

要隱藏軟鍵盤,當你按下完成按鈕,你必須使用imeOptions爲AutoCompleteTextView。對代碼進行這些更改並嘗試。

更改XML佈局文件,如下

<AutoCompleteTextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:imeOptions="actionDone" 
    android:id="@+id/actv" /> 

在Java文件

 actv = (AutoCompleteTextView)findViewById(R.id.actv); 
     actv.setOnEditorActionListener(new OnEditorActionListener() { 
      @Override 
      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
       if (actionId == EditorInfo.IME_ACTION_DONE) { 
        InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
        imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 
        return true;  
       } 
       return false; 
      }   
     }); 

我希望它可以幫助你。

+0

謝謝你的回答。我已經閱讀並使用了該資源。不幸的是,我需要橫向模式,不能更改爲垂直模式,這是一個規範要求。所以...無論我彈出多少彈出窗口,只要點擊autoCompleteTextView屏幕就會發生根本性變化,此外,血腥的Done按鈕在默認情況下不會執行任何操作!:) 您是如何設法解決這個問題的?結束? –

+0

@IstvanLatos意味着即使按下Done按鈕,鍵盤也不會消失? –