在Android中更改AutoCompleteTextView的宽度

问题描述 投票:19回答:4

我已经为此困扰了几天。我的布局中有一个autoCompleteTextView和一个拆分为50/50的按钮。自动完成功能有效,但建议仅占据屏幕的一半(相当于我的textView占据的大小)。我如何更改此尺寸以占据整个宽度?

原谅我可怕的绘画技巧:

蓝色= AutoCompleteTextView红色=所需的自动填充建议

这似乎是一个小问题,但仅将宽度更改为fill_parent无效。任何想法xml或以编程方式?

SOLUTION: myAutoCompleteTextView.setDropDownWidth(ViewGroup.LayoutParams.MATCH_PARENT)

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9Zajd6QS5wbmcifQ==” alt =“在此处输入图像描述”>

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

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

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9sZEJqNy5wbmcifQ==” alt =“在此处输入图像描述”>

java android xml android-listview autocompletetextview
4个回答
33
投票

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

android:dropDownWidth="match_parent"

如果您想在Java中以编程方式执行此操作,请使用方法setDropDownWidth(int)

myAutoCompleteTextView.setDropDownWidth(int)

编辑1:

Point pointSize = new Point();

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

myAutoCompleteTextView.setDropDownWidth(pointSize.x);

9
投票

我发现setDropDownAnchor()更方便。

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

在您的示例中,可能是按钮和文本视图的父项。


0
投票

您还可以调整宽度的起始位置:

myAutoCompleteTextView.setDropDownHorizontalOffset(int offset)

0
投票

就我而言,AutoCompleteTextView占据了整个宽度。看着change position of spinner dropdown list我设置

android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"

创建列表的左边距和右边距。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.