在Android中更改AutoCompleteTextView的宽度

22

我被这个问题困扰了几天。我的布局中有一个 autoCompleteTextView 和一个按钮,平分整个屏幕。自动完成工作正常,但建议的内容只占据了屏幕的一半(等同于我的 textView 占据的大小)。如何更改以占据整个宽度?

请原谅我的糟糕的画技:

蓝色 = AutoCompleteTextView 红色 = 期望的自动完成建议

这似乎是个微不足道的问题,但仅仅将宽度更改为 fill_parent 并不能解决。有任何 xml 或编程上的想法吗?

解决方案: myAutoCompleteTextView.setDropDownWidth(ViewGroup.LayoutParams.MATCH_PARENT)

enter image description here

编辑: 我的第一个问题似乎已经解决了,但现在如果我交换我的按钮和我的 autoCompleteTextView,我会遇到另一个奇怪的问题。宽度从 textView 开始。导致我得到一个不理想的结果。

解决方案:参见用户 vikram 的 edit 1

enter image description here

4个回答

40

您可以通过以下属性在此小部件的描述中设置此属性:

android:dropDownWidth="match_parent"

如果您希望以 Java 代码的方式实现此操作,请使用 setDropDownWidth(int) 方法:

myAutoCompleteTextView.setDropDownWidth(int)

编辑1:

Point pointSize = new Point();

getWindowManager().getDefaultDisplay().getSize(pointSize);

myAutoCompleteTextView.setDropDownWidth(pointSize.x);

我该如何传递根布局的宽度? - EGHDK
你在 setDropDownWidth(?) 中使用什么参数? - Vikram
ViewGroup.LayoutParams.MATCH_PARENT - EGHDK
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/33933/discussion-between-eghdk-and-vikram - EGHDK
太棒了,伙计:) 为了这个答案一直在努力。 - CoderDecoder
显示剩余5条评论

10
我发现setDropDownAnchor()更加方便。只需传递某个视图的id,下拉菜单视图就会匹配其宽度和位置(无论实际文本视图放在哪里)。
在您的示例中,可以是按钮和文本视图的父级。

2
在我的情况下,AutoCompleteTextView 占据了整个宽度。在查看更改下拉列表的位置时,我进行了设置。
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"

创建一个列表的左右边距。

enter image description here


0

你也可以调整宽度的起始位置:

myAutoCompleteTextView.setDropDownHorizontalOffset(int offset)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接