【问题标题】:AutoCompleteTextView creates a margin for dropdown listAutoCompleteTextView 为下拉列表创建边距
【发布时间】:2014-10-16 13:21:24
【问题描述】:

即使我没有在下拉列表项布局中设置边距,下拉列表也带有左右边距。我希望它与 autocompletetextview 的宽度相匹配。我怎样才能做到这一点?

这是我的 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>

【问题讨论】:

    标签: android autocompletetextview


    【解决方案1】:

    您可以使用两种方法 setDropDownHorizontalOffset(int)setDropDownWidth(int)

    例如,您可以执行以下操作来匹配 autocompletetextview:

    input.setDropDownHorizontalOffset(0)
    input.setDropDownWidth(input.getWidth())
    

    仅供参考,第一种方法可以使用负值。因此,您可以将下拉布局宽度设置为超过 autocompletetextview 宽度:

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

    【讨论】:

      【解决方案2】:

      我不知道,你已经得到了答案。但可能会有所帮助。

      如果您为自定义适配器中的下拉列表分配布局并为 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>
      

      如您所见,我将 "padding right""padding left" 设置为 "android:right"" android:left" 可绘制 xml 文件中的属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多