我想删除蓝色(我正在测试我的应用程序与Holo)出现当我点击一个旋转器
我的代码: 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" />
。
<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>
这行不通。任何想法?
自定义android:spinnerDropDownItemStyle
样式操作栏下拉菜单
当我选择项目时,我可以摆脱项目上的蓝色矩形,当我这样做:首先,我在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:color/XXX或#XXX不起作用)
毕竟我应用他们的活动。我使用Xamarin,所以代码是:
[Activity( Label = "TestLayouts", MainLauncher = true, Icon = "@drawable/icon", Theme="@style/Theme.Spinner")]
,但对于android,它应该是:<activity android:theme="@style/Theme.Spinner">
我用这个答案作为参考:可点击视图的默认选择器背景
还可以使用
删除旋转控件上的蓝色矩形 <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>
没有主题的解决方案。如果你只有几个旋转器,那就太理想了。
创建一个状态为(https://developer.android.com/guide/topics/resources/drawable-resource.html#StateList)的drawable (xml)
对状态PRESSED和NORMAL使用相同的图像
,然后使用它作为背景:
mySpinner.setBackgroundResource(R.drawable.my_spinner_state_drawable)
额外提示:
- 你可以使用system drawable(图像)从系统资源:像"@android: drawable/btn_dropdown_normal"。它更容易维护,并提供更原生的外观和感觉。
- ref http://androiddrawables.com/Buttons.html