Android autoCompleteTextView随屏幕尺寸变化?

发布于 2024-12-28 04:42:03 字数 454 浏览 0 评论 0原文

Android 开发人员大家好,

我有一个关于 autocompletetextview 的问题。我正在平板电脑上进行开发,并且我对其进行了很好的定制。当我在平板电脑上运行它时,它看起来像这样: Tablet view

这实际上就是我想要的 - 所有可见的东西,小物品,蓝色而不是橙色。凉爽的。 这就是当我在较小的设备(例如 Nexus-S)上运行完全相同的应用程序时发生的情况:

Nexus view

原来的视图消失了,有橙色的东西,而且我最多一两次只能看到一个建议的项目。这不是我的本意。

如果我不是横向运行此应用程序,而是纵向运行该应用程序,则一切正常。疯狂的。 有谁知道我可以做什么来在较小的屏幕上保留自定义布局?

Hello fellow Android developpers,

I have a problem regarding the autocompletetextview. I'm developping on a tablet, and I customized it nicely. When I run it on a tablet, it looks like this:
Tablet view

This is actually what I want - everything visible, small items, blue instead of orange. Cool.
And this is what happens when I run the exact same app on a smaller device, for example a Nexus-S:

Nexus view

The original views disappear, have orange stuff, and I only see one suggested item at a time or two at best. This is not what I intended.

If I run this app not in landscape, but in portrait, all works fine. Insane.
Does anybody know what I can do to keep the custom layout on the smaller screen?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少年亿悲伤 2025-01-04 04:42:03

此处显示的第二张图像是设备处于横向模式时自动完成文本查看或编辑文本的结果。

如果设备处于纵向模式,它将在垂直列表中显示建议,而对于横向模式,它将在水平列表中显示,并尝试用编辑文本和软键盘填充整个屏幕。

我也遇到了同样的问题,请检查Android开发者网站以获取有关支持多屏幕的信息,它可能会对您有所帮助。

新答案

要在按下“完成”按钮时隐藏软键盘,您必须使用 AutoCompleteTextView 的 imeOptions。对您的代码进行这些更改并尝试。

对 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;
            }           
        });

希望对您有所帮助。

The second image you shown here is the result of auto complete text view or edit text when the device is in landscape mode.

If the device is in portrait mode it will display the suggestions in Vertical list, and for landscape mode it will display in horizontal list and it tries to fill the entire screen with edit text and soft keyboard.

I too faced same problem, Please check the Android Developers website for information about Supporting multiple screens, it may help you.

New Answer

To hide soft keyboard when you press Done button you have to use imeOptions for AutoCompleteTextView. Do these changes to your code and try it.

Changes to XML layout file as below

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

In java file

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

I hope it may help you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文