我的要求是让Spinner下拉宽度类似于Spinner视图 因此,当展开下拉时,它可以与Spinner视图完全重叠。
但是我遇到了一个问题 我创建了2个微调器来解释我的情况。
form_screen_equipment_combo_box_dropdown_vertical_offset = -50dp
一个来自XML布局。 (给我预期的结果)
<Spinner
android:id="@+id/equipment_selector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/combo_box_bg"
android:dropDownVerticalOffset="@dimen/form_screen_equipment_combo_box_dropdown_vertical_offset"
android:dropDownWidth="match_parent"
android:popupBackground="@drawable/combo_box_bg"
android:spinnerMode="dropdown" />
另一个动态来自java代码。 (有问题的旋转器)
Spinner view = new Spinner(context, Spinner.MODE_DROPDOWN);
**"view.setPadding(0, 0, 0, 0);" This line solved my problem.**
view.setLayoutParams(new LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
CustomSpinnerAdapter equipmentAdapter = new CustomSpinnerAdapter(context, 0, Arrays.asList(values));
view.setAdapter(equipmentAdapter);
view.setPrompt(title);
view.setPopupBackgroundDrawable(context.getResources().getDrawable(R.drawable.combo_box_bg));
view.setDropDownWidth(android.view.ViewGroup.LayoutParams.MATCH_PARENT);
view.setDropDownVerticalOffset(context.getResources().getDimensionPixelOffset(R.dimen.form_screen_equipment_combo_box_dropdown_vertical_offset));
view.setBackground(context.getResources().getDrawable(R.drawable.combo_box_bg));
在第二个微调器中我有意想不到的空间,我通过UIAutomator进行检查,看起来下拉视图的宽度小于Spinner视图。 第二个微调器的附加截图供参考。 你能否建议所需的代码更改来解决这个问题? 提前谢谢。
答案 0 :(得分:0)
我已经编辑了上面的答案。在以编程方式创建时,默认情况下Spinner小部件会添加填充。不得不重置那个0。