【问题标题】:Android Spinner dropDownHorizontalOffset not functioning but dropDownVerticleOffest isAndroid Spinner dropDownHorizo​​ntalOffset 不起作用但 dropDownVerticleOffest 是
【发布时间】:2014-02-25 12:13:52
【问题描述】:

我最近一直在研究 Android Spinner 控件的世界,但遇到了一个小问题。我需要将下拉菜单的左侧与主微调器控件的最左侧对齐。我尝试使用 dropDownHorizo​​ntalOffset 来对齐它们,无论我使用什么值,下拉菜单的水平位置都不会改变,但是当我使用 dropDownVerticleOffset 进行测试时,下拉菜单的垂直位置确实会改变。

有没有人使用过这些价值观,或者可能知道我还能如何调整它们?

谢谢!

【问题讨论】:

标签: java android spinner dropdownbox


【解决方案1】:

已解决:我尝试了建议的填充更改而不是 dropDownHorizo​​ntalOffset 并且确实有效,问题是它还更改了主微调器对象中文本的位置,使其看起来不太好。所以这种方法确实有效,但不是可取的。

问题是我们为我们的应用程序使用了 4.1 之前的整体主题 (theme.NoTitleBar),而那个旧的主题不支持 dropDownHorizo​​ntalOffset,因为当时通常不完全支持微调器。我将其更改为 Theme.Holo.Light.NoTitleBar 并且一切正常!我不认为这是一个太常见的问题,但希望它可以帮助某人。

【讨论】:

    【解决方案2】:

    我通过删除弹出窗口的背景实现了相同的目标。

    spinner.setPopupBackgroundDrawable(null);
    

    该代码将删除背景(以及随之而来的填充),因此将使您的下拉菜单与微调器对齐。

    显然,如果您不希望它是透明的,则需要使用自己的可绘制对象。

    【讨论】:

      【解决方案3】:

      我认为这对你有用:

      spinner.setPopupBackgroundDrawable(null);
      

      【讨论】:

        【解决方案4】:

        我一直在寻找这个问题的最新答案。万一dropDownHorizontalOffset 不起作用或者你找不到它。有一个替代方案。将Spinner 的高度设置为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" />
        

        【讨论】:

          【解决方案5】:

          尝试使用android:paddingLeft 而不是dropDownHorizontalOffset

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-01-13
            • 1970-01-01
            • 1970-01-01
            • 2012-12-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多