2013-03-05 58 views
3

我想在点击Spinner时移除蓝色(我正在测试使用Holo的应用程序)。删除Spinner上的按下颜色

我的代码:

ArrayAdapter<String> array_adapter = new ArrayAdapter<String> (getActivity(), 
      R.layout.spinner_item, string_array); 
    array_adapter.setDropDownViewResource(R.layout.spinner_item); 

    Spinner spinner = (Spinner) getView().findViewById(R.id.spinner); 
    spinner.setAdapter(array_adapter); 

spinner_item.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/spinner_text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAllCaps="true" 
    android:background="@drawable/item" 
    style="@style/EquidiaTheme.MySpinner" /> 

和item.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@android:color/transparent" /> 
    <item android:state_selected="true" android:drawable="@android:color/transparent" /> 
    <item android:drawable="@android:color/transparent" /> 
</selector> 

这是行不通的。任何想法?

+0

我不知道。我希望项目在选中/按下时不显示任何颜色。 – thomaus 2013-03-05 16:56:16

回答

0

我能够摆脱对当我选择它的项目蓝色矩形,当我做到了这一点: 首先我声明,我想在values.xml使用颜色:

<resources> 
    <drawable name="red_color">#ff0000</drawable> 
    <drawable name="blue_color">#0000ff</drawable> 
    <drawable name="green_color">#00ff00</drawable> 
    <drawable name="transparent_color">#00000000</drawable> 
</resources> 

比我Styles.xml

<resources> 
    <style name="Theme.Spinner" parent="android:Theme.Holo"> 
     <item name="android:attr/listChoiceBackgroundIndicator">@drawable/transparent_color</item> 
    </style> 
</resources> 
定义自定义样式

在我的风格是只能使用在资源定义的颜色(设置颜色,如:@android:颜色/ XXX或#XXX直接在风格上没有工作)

毕竟我aplly了他们的活动。我使用Xamarin所以5月的代码是:

[Activity(Label = "TestLayouts", MainLauncher = true, Icon = "@drawable/icon", Theme="@style/Theme.Spinner")] 

但是对于Android的它应该是: <activity android:theme="@style/Theme.Spinner">

我用这个答案以供参考: Default selector background in Clickable Views

也摆脱对微调蓝色矩形本身使用:

<Spinner 
    android:background="@null" 

您需要使用两者来彻底删除蓝色矩形能够。 也可能这种风格的属性可以帮助你:

<item name="android:attr/colorPressedHighlight">#FF0000</item> 
    <item name="android:attr/colorLongPressedHighlight">#FF0000</item> 
    <item name="android:attr/listChoiceIndicatorSingle">@drawable/red_color</item> 
0

一个没有主题的解决方案。如果你只有几个微调,那就很理想。

创建一个可绘制(XML)与国家(https://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

使用相同的影像按下状况及正常

然后用它作为背景:

mySpinner.setBackgroundResource(R.drawable.my_spinner_state_drawable) 

额外提示:

  • 您可以使用系统资源中的系统可绘制(图像):如“@an droid:drawable/btn_dropdown_normal“。它更容易维护并提供更原生的外观和感觉。
  • ref http://androiddrawables.com/Buttons.html