如何为下拉菜单添加边框,而不影响其弹出菜单。

7

我将尝试为我的旋转器添加边框。

目前为止,我已经完成了以下工作:

在我的styles.xml文件中:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
      <!-- ... -->       
      <item name="android:spinnerItemStyle">@style/spinnerItemStyle</item>
      <!-- ... -->
</style>

<style name="spinnerItemStyle">
        <item name="android:padding">@dimen/form_horizontal_padding_normal</item>
        <item name="android:textAppearance">@style/TextAppearance.AppCompat.Subhead</item>
        <item name="android:background">@drawable/spinner_border</item>
        <item name="android:textColor">@color/secondary_text</item>
 </style>

spinner_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <solid android:color="@android:color/white"/>
    <corners android:radius="6dp"/>
    <stroke
        android:width="1dp"
        android:color="@color/detail_accent_pane_background"/>

</shape>

没有更改之前,弹出菜单的样子如下: enter image description here 更改后,旋转器有了边框: enter image description here 但是弹出菜单也有了边框,这不是我想要的。 enter image description here 我该如何为旋转器添加边框而不影响它们的弹出菜单?
谢谢。

我也在运行Kitkat的三星平板上进行测试,无论我尝试什么,都无法使弹出菜单看起来像之前的样子(就像我问题中的第一张图片)。 - eddy
我不这么认为。我确实使用高程,但不在那个活动中。我真的可以在不影响弹出背景的情况下向Spinner添加边框吗? - eddy
你能否分享一下使用了Spinner的XML文件? - Adeel Turk
尝试这个:https://dev59.com/sF_Va4cB1Zd3GeqPU5u9 - Adeel Turk
抱歉,我不在有互联网的城市。你的问题解决了吗? - Adeel Turk
显示剩余3条评论
2个回答

3
这可能对你有帮助。
背景旋转器(backgroud_spinner.xml)。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <stroke android:width="0dp" android:color="#80FFFFFF" />
    <solid android:color="#80FFFFFF"/>
</shape>

并应用此功能,
 android:popupBackground="@drawable/backgroud_spinner"

它将使弹出窗口完全透明,但我不知道它是否适合你,当我使用你的可绘制对象时,它没有像你展示的图片一样显示。


谢谢Shree,我尝试添加了spinner_border.xml可绘制对象,但弹出菜单仍然有边框和圆角,而我需要的是它们看起来与第一张图片完全相同 :( - eddy
但是这些都没有显示在我的列表中,你能否发布你的Spinner XML以及其他相关的东西,确保它们完全一样。这样我就可以进行调试了。 - Shree Krishna
我认为问题在于我的旋转器使用了材料设计风格,因为我使用了应用程序support:appcompat-v7,而第一张图片中的弹出菜单似乎具有某种高度,而可绘制对象显然没有。 - eddy
1
如果可能的话,尽可能多地发布代码将会非常有帮助。 - Shree Krishna
这是自定义布局还是使用了simple_spinner_dropdown_item?我明白每个项目都应该去掉边框,但你提供的代码不够充分。它在我们的设备上按照你想要的方式工作。它不会显示每个元素的边框。 - Shree Krishna
显示剩余2条评论

2
增加

android:popupBackground="@android:color/transparent" 

在XML中将<Spinner/>视图添加到你的代码中


谢谢。我尝试了您的解决方案,但不幸的是它没有起作用。弹出菜单仍然有边框和圆角 :( - eddy
你能发布XML吗? - Shadab Ansari
好的,它适用于我的自定义微调器。帮助我在popupBackground上删除边框/轮廓颜色。感谢@ShadabAnsari - Kenny Dabiri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接