Android 微调器:删除文本和下拉图标之间多余的白色 Space
Android Spinner: Remove Extra White Space Between Text and Dropdown Icon
我有 一个旋转器,默认情况下,文本和 之间有额外的 white-space下拉图标 我真的不喜欢并且想删除它。
尝试在网上搜索但没有得到任何可以帮助我的东西。这里有谁更早做过吗?
删除 xml
中微调器的填充
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:padding="0dp"
android:id="@+id/my_spinner">
SpinnerAdapter 或您的适配器 class 应根据您的需要进行自定义。
SpinnerAdapter.getView(position, convertView, parent)
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
view.setPadding(0, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom());
return view;
}
更改微调列表项布局中的样式属性
玩过Spinner后自己动手做的。这是非常有效的解决方案。
首先创建一个带有您选择的指示器图像的下拉菜单。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="rectangle"/>
</item>
<item
android:width="24dp"
android:height="24dp"
android:gravity="right|center_vertical">
<bitmap
android:src="@drawable/ic_dropdown"
android:tint="@color/colorPrimaryDark"/>
</item></layer-list>
然后分配给Spinner的背景。
<Spinner
android:id="@+id/basket_spinner_item_quantity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:spinnerMode="dropdown"
android:padding="0dp"
android:background="@drawable/ic_spinner_dropdown"/>
现在,根据您的要求调整微调项的填充和对齐方式。
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/simple_spinner_text_quantity"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:paddingLeft="20dp"
android:paddingRight="25dp"
android:gravity="right"
android:textAlignment="gravity"/>
只需将以下属性添加到微调器 xml 元素即可:
对于 API < 17:
android:gravity="right"
对于 API => 17:
android:gravity="end"
快速修复
android:layout_marginStart="-40dp"
根据需要玩负边距。在你里面微调项目 xml
出于某种原因,给 padding:20dp
解决了我的问题。此外,使用 translationX
的值来调整下拉图标的位置。最后,您可以使用 layout_marginLeft
和 layout_marginRight
相应地移动整个下拉列表。
使用下面的代码快速修复
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="-9dp"
android:layout_marginTop="10dp"
android:entries="@array/almanac"
android:gravity="left"
android:padding="0dp"
android:spinnerMode="dropdown"
android:layout_marginStart="-9dp" />
将重力设置为结束并调整为合适的值:
android:gravity="end"
android:paddingEnd="20dp"
我有 一个旋转器,默认情况下,文本和 之间有额外的 white-space下拉图标 我真的不喜欢并且想删除它。
尝试在网上搜索但没有得到任何可以帮助我的东西。这里有谁更早做过吗?
删除 xml
中微调器的填充<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:padding="0dp"
android:id="@+id/my_spinner">
SpinnerAdapter 或您的适配器 class 应根据您的需要进行自定义。
SpinnerAdapter.getView(position, convertView, parent)
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
view.setPadding(0, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom());
return view;
}
更改微调列表项布局中的样式属性
玩过Spinner后自己动手做的。这是非常有效的解决方案。
首先创建一个带有您选择的指示器图像的下拉菜单。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="rectangle"/>
</item>
<item
android:width="24dp"
android:height="24dp"
android:gravity="right|center_vertical">
<bitmap
android:src="@drawable/ic_dropdown"
android:tint="@color/colorPrimaryDark"/>
</item></layer-list>
然后分配给Spinner的背景。
<Spinner
android:id="@+id/basket_spinner_item_quantity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:spinnerMode="dropdown"
android:padding="0dp"
android:background="@drawable/ic_spinner_dropdown"/>
现在,根据您的要求调整微调项的填充和对齐方式。
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/simple_spinner_text_quantity"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:paddingLeft="20dp"
android:paddingRight="25dp"
android:gravity="right"
android:textAlignment="gravity"/>
只需将以下属性添加到微调器 xml 元素即可:
对于 API < 17:
android:gravity="right"
对于 API => 17:
android:gravity="end"
快速修复
android:layout_marginStart="-40dp"
根据需要玩负边距。在你里面微调项目 xml
出于某种原因,给 padding:20dp
解决了我的问题。此外,使用 translationX
的值来调整下拉图标的位置。最后,您可以使用 layout_marginLeft
和 layout_marginRight
相应地移动整个下拉列表。
使用下面的代码快速修复
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="-9dp"
android:layout_marginTop="10dp"
android:entries="@array/almanac"
android:gravity="left"
android:padding="0dp"
android:spinnerMode="dropdown"
android:layout_marginStart="-9dp" />
将重力设置为结束并调整为合适的值:
android:gravity="end"
android:paddingEnd="20dp"