【问题标题】:What property controls Spinner dropdown background?什么属性控制 Spinner 下拉背景?
【发布时间】:2013-12-06 12:01:43
【问题描述】:

我有一个使用this generator 创建的自定义主题。它有我不喜欢的 Spinners 的自定义样式。我想更改背景可绘制对象,但我似乎无法弄清楚哪个属性控制它。

这就是主题版本的样子

这是使用 Holo.Light 主题时的外观。

请注意第一张(主题)图像中下拉列表周围的深灰色线条。这就是我想要摆脱的。什么属性控制这个?我希望它们与默认值匹配。

另外,什么控制下拉列表的垂直对齐?如您所见,它与第一个图像中的 Spinner 重叠(它下面的线不可见,因为它在第二个图像中)。

【问题讨论】:

  • @user2558882 这是与我之前的问题相关的另一个问题。

标签: android android-layout android-spinner android-theme android-styles


【解决方案1】:

您想要的属性是 Spinner 元素上的android:popupBackground

如果你仔细观察,holo popup 也与微调器重叠了一些,但是有一堆用于阴影的填充,所以看起来不错。

但是,您可以在 Spinner 元素上使用android:dropDownVerticalOffset 来调整它。

【讨论】:

  • 谢谢!我不确定应该将什么设置为 popupBackground 属性。 Android 的 Holo.Light? I checked it from Android's sources and it seems like @android:drawable/spinner_dropdown_background 的默认值是什么。但这并没有改变外观。
  • 不确定...我尝试从您使用的那个站点下载一个主题,但我不确定它实际上是在哪里修改下拉背景可绘制的。在您的情况下,删除更改主题的部分是最有意义的,而不是在布局中多次覆盖它。您可能需要尝试修改它。
  • 无论如何,如果您也支持 pre-Honeycomb,您可能希望从最新的 Jellybean 中完全克隆 drawable,而不是尝试引用内置的 @android drawable。您可以复制sdk\platforms\android-19\data\res\drawable\spinner_dropdown_background.xml 及其在drawable-hdpidrawable-xhdpi 中引用的各种drawable。
  • 非常感谢兄弟!你节省了我很多时间尝试重做整个视图的布局.. ++1
【解决方案2】:

我们遇到了同样的问题。它与Android Holo theme generator 有关。

以下是您应该从 Theme.xml 文件中删除的行...

<item name="android:spinnerStyle">@style/SpinnerCustom</item>
<item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItemCustom</item>
<item name="android:popupMenuStyle">@style/PopupMenu.Custom</item>
<item name="android:dropDownListViewStyle">@style/DropDownListView.Custom</item>
<item name="android:actionDropDownStyle">@style/DropDownNav.Custom</item>

...通过删除这些,我们现在在微调器下拉菜单中拥有标准的 Holo.Light 主题。

【讨论】:

    【解决方案3】:

    您需要将 spinnertheme 的父级更改为 android:Widget.Holo.Light.Spinner

    <style name="SpinnerTHEME" parent="android:Widget.Holo.Light.Spinner">
    

    【讨论】:

      【解决方案4】:
      <style name="spinner_style" parent="android:Widget.Holo.Light.Spinner">
             <item name="android:paddingLeft">@dimen/ten_dp</item>
             <item name="android:paddingRight">@dimen/ten_dp</item>
      </style>
      

      【讨论】:

      • 一个好的答案总是会解释所做的事情以及为什么以这种方式完成,不仅对 OP,而且对未来的访问者来说。请添加一些描述以使其他人理解。 :)
      猜你喜欢
      • 1970-01-01
      • 2020-04-18
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 2012-12-16
      • 2011-10-07
      • 1970-01-01
      • 2015-03-07
      相关资源
      最近更新 更多