Java Android Spinner dropDownHorizontalOffset不起作用,但dropDownVerticleOffest不起作用
我最近潜入了Android Spinner控件的世界,遇到了一个小问题。我需要将下拉列表的左侧与主微调器控件的最左侧对齐。我已经尝试使用dropDownHorizontalOffset来对齐它们,无论使用什么值,下拉列表的水平位置都不会改变,但是当我使用dropDownVerticleOffset进行测试时,下拉列表的垂直位置会改变 有没有人使用过这些价值观,或者有没有人知道我可以如何调整这些价值观Java Android Spinner dropDownHorizontalOffset不起作用,但dropDownVerticleOffest不起作用,java,android,spinner,dropdownbox,Java,Android,Spinner,Dropdownbox,我最近潜入了Android Spinner控件的世界,遇到了一个小问题。我需要将下拉列表的左侧与主微调器控件的最左侧对齐。我已经尝试使用dropDownHorizontalOffset来对齐它们,无论使用什么值,下拉列表的水平位置都不会改变,但是当我使用dropDownVerticleOffset进行测试时,下拉列表的垂直位置会改变 有没有人使用过这些价值观,或者有没有人知道我可以如何调整这些价值观 谢谢 尝试使用android:paddingLeft代替dropDownHorizontalOf
谢谢 尝试使用
android:paddingLeft
代替dropDownHorizontalOffset解决:我尝试了建议的填充更改而不是dropDownHorizontalOffset,但它确实起了作用,问题是它还改变了文本在主微调器对象中的位置,使其看起来不太好。因此,这种方法确实有效,但并不可取
问题是我们在应用程序中使用了4.1版本之前的整体主题(theme.NoTitleBar),而dropDownHorizontalOffset不受旧主题的支持,因为那时通常不完全支持微调器。我把它改成了Theme.Holo.Light.NoTitleBar,一切都很好!我不认为这是一个太常见的问题,但希望它能帮助一些人。我通过删除弹出窗口的背景实现了同样的目标
spinner.setPopupBackgroundDrawable(null);
该代码将删除背景(以及随之而来的填充),因此将使下拉列表与微调器对齐
显然,如果您不想让drawable透明,您需要使用自己的drawable。我认为这对您很有用:
spinner.setPopupBackgroundDrawable(null);
我一直在寻找这个问题的最新答案。如果dropDownHorizontalOffset
不起作用或者您找不到它。还有一种选择。将微调器的高度设置为0dp
,并将marginTop
值设置为垂直偏移,将marginRight
值设置为水平偏移
就我而言:
<Spinner
android:id="@+id/spinner"
android:background="@null"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginTop="40dp"
android:layout_marginRight="27dp"
android:layout_alignParentEnd="true" />
有一个bug:您找到解决此问题的方法了吗?错误报告被标记为过时,但我刚刚遇到了这个问题。惊人:)