Android spinner弹出式下拉列表位置和大小
我设法改变了微调器的背景和它的弹出下拉背景。我可以调整弹出窗口Android spinner弹出式下拉列表位置和大小,android,android-layout,android-view,android-spinner,Android,Android Layout,Android View,Android Spinner,我设法改变了微调器的背景和它的弹出下拉背景。我可以调整弹出窗口android:dropDownHorizontalOffset和android:dropDownVerticalOffset。 我还有一个微调器项目的自定义布局 但是,我仍然坚持这种看法: 请注意这些项目是如何超出弹出式下拉列表的边界的。我怎样才能解决这个问题?有没有办法在物品的顶部和底部插入填充物 <Spinner android:id="@+id/branchesSpinner" andr
android:dropDownHorizontalOffset
和android:dropDownVerticalOffset
。
我还有一个微调器项目的自定义布局
但是,我仍然坚持这种看法:
请注意这些项目是如何超出弹出式下拉列表的边界的。我怎样才能解决这个问题?有没有办法在物品的顶部和底部插入填充物
<Spinner
android:id="@+id/branchesSpinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginStart="8dp"
android:background="@drawable/dropdown_base"
android:dropDownHorizontalOffset="-5dp"
android:dropDownVerticalOffset="50dp"
android:paddingBottom="10dp"
android:paddingLeft="20dp"
android:popupBackground="@drawable/rounded_rectangle_4"
/>
微调器\项目\自定义\布局:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:textColor="@color/charcoal"
android:textStyle="bold"
tools:text="Select Branch"></TextView>
注意:我添加的背景是.PNG图像,而不是XML,因为您使用PNG文件作为微调器的弹出背景,所以有两个限制
- 如果你在屏幕密度高的设备上运行应用程序,你的微调器背景可能会拉伸,看起来很难看
- 您不能为弹出式背景设置填充,这就是为什么有时您的内容看起来不像您期望的那样好
draw9patch
工具来编辑您的圆角矩形4.png
您可以替换为当前背景,然后再试一次。因为您使用png文件作为微调器的弹出背景,所以有两个限制
- 如果你在屏幕密度高的设备上运行应用程序,你的微调器背景可能会拉伸,看起来很难看
- 您不能为弹出式背景设置填充,这就是为什么有时您的内容看起来不像您期望的那样好
draw9patch
工具来编辑您的圆角矩形4.png
您可以使用当前背景进行替换,然后再试一次。您需要为微调器创建自定义适配器。 然后,在适配器类的getDropDownView方法中,当位置为0时,需要使用下面的代码设置下拉项的上边距
public static void setMargins (View v, int l, int t, int r, int b) {
if (v.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
p.setMargins(l, t, r, b);
v.requestLayout();
}
}
只要让你的逻辑来比较的位置下拉儿童。
请注意,您只需要设置上边距。您需要为微调器创建自定义适配器。 然后,在适配器类的getDropDownView方法中,当位置为0时,需要使用下面的代码设置下拉项的上边距
public static void setMargins (View v, int l, int t, int r, int b) {
if (v.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
p.setMargins(l, t, r, b);
v.requestLayout();
}
}
只要让你的逻辑来比较的位置下拉儿童。
请注意,您只需要设置上边距。是否使用android:popupBackground为微调器使用自定义背景?@SonTruong是的,我也可以发布自定义背景。@SonTruong我用微调器xml更新了问题。您是否可以添加
圆角_矩形_4.xml
?是否为您的微调器使用自定义背景通过使用android:popupBackground微调器?@SonTruong是的,我还可以发布自定义背景。@SonTruong我用微调器xml更新了问题。您可以添加圆角矩形4.xml
?