AutoCompleteTextView会为下拉列表创建一个边距。

4

尽管我没有在下拉列表项布局中设置边距,但下拉列表仍带有右侧和左侧边距。我希望它与自动完成文本视图的宽度匹配。如何实现这一点?

以下是我的AutoCompleteTextView xml代码:

<LinearLayout
                android:id="@+id/headerlogo"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_margin="0dp"
                android:layout_weight="1"
                android:clickable="true"
                android:gravity="center_vertical"
                android:orientation="horizontal"
                android:weightSum="9" >

                <AutoCompleteTextView
                    android:id="@+id/autocomplete_name"
                    android:layout_width="wrap_content"
                    android:layout_height="fill_parent"
                    android:layout_weight="7"
                    android:background="@drawable/edittextback"
                    android:ems="10"
                    android:textSize="15sp"
                    android:hint="@string/codehint"
                    android:textColorHint="@color/hintgrey"
                    android:paddingRight="30dp"
                    android:paddingLeft="10dp"
                    android:singleLine="true"
                    android:ellipsize="end"
                    android:completionThreshold="1">
                </AutoCompleteTextView>

                <Button
                    android:id="@+id/btnsearch"
                    android:layout_width="wrap_content"
                    android:layout_height="fill_parent"
                    android:layout_weight="2"
                    android:background="@drawable/buttondarkblue"
                    android:text="X"
                    android:textColor="@color/white" />
            </LinearLayout>

下拉列表的项目布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:orientation="vertical">
      <TextView
        android:id="@+id/route"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="15sp"
        android:singleLine="true"
        android:ellipsize="end"
        android:padding="5dp"
        android:textColor="@color/loginblue"
        android:text="ASD"></TextView>
</LinearLayout>
2个回答

2
你可以使用2种方法setDropDownHorizontalOffset(int)setDropDownWidth(int)
例如,您可以像这样做来匹配autocompletetextview:
input.setDropDownHorizontalOffset(0)
input.setDropDownWidth(input.getWidth())

FYI 第一种方法可以使用负值。所以您可以设置下拉菜单的宽度大于自动完成文本视图的宽度:

int offset = 64
input.setDropDownHorizontalOffset(-1 * offset)
input.setDropDownWidth(input.getWidth() + offset * 2)

1
我不知道,你已经得到了答案。但是可能会有帮助。
如果在自定义适配器中为下拉列表分配布局并为TextView设置边距或为根视图(例如LinearLayout)设置填充,则无法生效。我按照以下方式操作:
我在style.xml文件中为下拉列表设置了背景:
<item name="android:popupBackground">@drawable/dropdown_list_bg</item>

然后在dropdown_list_bg.xml文件中,我写下了以下几行代码:
<item android:right="1dip" android:left="1dip">
    <shape>
        <solid android:color="@color/dropdownListBg"/>
        <corners android:radius="@dimen/corner"/>
    </shape>
</item>

正如您所看到的,我在可绘制的XML文件中使用了“android:right”和“android:left”属性来设置“padding right”“padding left”

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