【问题标题】: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>