2012-01-20 65 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按钮,键盘也不会消失? –