【问题标题】:Android layout padding is ignored by dropdown下拉菜单忽略 Android 布局填充
【发布时间】:2013-11-11 19:31:48
【问题描述】:

作为xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="20dp">

    <Button
        android:id="@+id/locationButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:minWidth="46dip"
        android:onClick="getLocation"
        android:text="@string/icon_map_marker" />

    <AutoCompleteTextView
        android:id="@+id/autocomplete_city"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:hint="@string/city_hint"
        android:inputType="text"
        android:layout_alignBottom="@+id/locationButton"
        android:layout_alignTop="@id/locationButton"
        android:layout_toLeftOf="@id/locationButton"
        android:dropDownWidth="match_parent"
        />

    <requestFocus />

</RelativeLayout>

如你所见

android:dropDownWidth="match_parent"

忽略相对布局的填充。任何想法如何解决这个问题?

【问题讨论】:

    标签: android android-layout android-listview


    【解决方案1】:

    解决了。我必须定义另一个仅包含自动完成文本视图和按钮的相对布局。这个布局就是弹窗的锚点,取相对布局的宽度作为自己的宽度。关键:

    android:dropDownWidth="wrap_content"
    android:dropDownAnchor="@+id/anchor"
    

    短版:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="20dp" >
    
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/anchor" >
    
            <Button
                android:id="@+id/locationButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true" />
    
            <AutoCompleteTextView
                android:id="@+id/autocomplete_city"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/locationButton"
                android:layout_alignTop="@id/locationButton"
                android:layout_centerHorizontal="true"
                android:layout_toLeftOf="@id/locationButton"
                android:dropDownWidth="wrap_content"
                android:hint="@string/city_hint"
                android:dropDownAnchor="@+id/anchor" />
    
            <requestFocus />
    
        </RelativeLayout>
    
    </RelativeLayout>
    

    【讨论】:

      【解决方案2】:
      //try this
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:padding="10dp">
      
      
          <AutoCompleteTextView
              android:id="@+id/autocomplete_city"
              android:layout_width="0dp"
              android:layout_weight="1"
              android:layout_height="wrap_content"
              android:hint="city_hint"
              android:inputType="text"
              android:dropDownWidth="match_parent"/>
          <Button
              android:id="@+id/locationButton"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:minWidth="46dip"
              android:onClick="getLocation"
              android:text="icon_map_marker" />
      </LinearLayout>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-06
        • 1970-01-01
        • 1970-01-01
        • 2012-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-15
        相关资源
        最近更新 更多