程序化的Spinner间距问题

时间:2014-12-08 20:13:26

标签: android android-layout

我的要求是让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视图。 第二个微调器的附加截图供参考。 Problematic Spinner 你能否建议所需的代码更改来解决这个问题? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我已经编辑了上面的答案。在以编程方式创建时,默认情况下Spinner小部件会添加填充。不得不重置那个0。