在 Android 中更改 AutoCompleteTextView 的宽度

我已经为此难住了几天了。我的布局中有一个自动完成文本视图和一个按钮拆分为50/50。自动完成功能有效,但建议仅占屏幕的一半(相当于我的textView占用的大小)。我该如何改变它以占据整个宽度?

原谅我可怕的绘画技巧:

蓝色 = 自动完成文本查看红色 = 所需的自动完成建议

这似乎是一个微不足道的问题,但简单地将宽度更改为fill_parent是行不通的。任何想法xml或编程?

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

enter image description here

编辑:我的第一个问题似乎解决了,但现在如果我切换我的按钮和我的autoCompleteTextView,我会遇到另一个奇怪的问题。宽度从 textView 开始的位置开始。给我留下了一个不受欢迎的结果。

溶液:查看来自用户的编辑 1:vikram

enter image description here


答案 1

您可以使用以下属性在此小组件的描述中设置此属性:

android:dropDownWidth="match_parent"

如果你想在java中“以编程方式”执行此操作,请使用以下方法:setDropDownWidth(int)

myAutoCompleteTextView.setDropDownWidth(int)

编辑 1:

Point pointSize = new Point();

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

myAutoCompleteTextView.setDropDownWidth(pointSize.x);

答案 2

我发现它更方便。setDropDownAnchor()

只需传递某个视图的 ID,下拉视图将匹配其宽度和位置(无论实际文本视图位于何处)。

在您的示例中,这可能是两者的父级:按钮和文本视图。


推荐