如何将我的 editText 设置为微调器?对 Lollipop 的支持不起作用

How can I style my editText as a spinner? Support to Lollipop not working

我有一个 EditText 字段,我想将其样式化为 Spinner,我正在使用支持库 Android Lollipop。但是,我无法为下拉选择器提供正确的颜色(与默认微调器上使用的颜色相同)。

例子可以在这里看到:http://imgur.com/g0ia41h

我想要一个较暗的选择器,但我只能得到一个白色的选择器,如图所示(第一个是我的 editText 作为微调器,带有白色选择器,第二个是真正的微调器,带有较暗和校正器选择器)

如何更改颜色?

activity的款式是这个:

<style name="SettingsTheme" parent="Theme.AppCompat.Light.NoActionBar">
  <item name="android:textSize">@dimen/text_size_medium</item>
  <item name="colorPrimary">@color/h19_black</item>
  <item name="colorPrimaryDark">@color/white</item>
</style>

我的EditText样式如下:

 <com.devspark.robototextview.widget.RobotoEditText
    android:id="@+id/et_birth_date"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="date"
    android:focusable="false"
    style="?android:attr/spinnerStyle"  />

有什么想法吗?我为此苦苦挣扎了一段时间。我没有更多的想法。

谢谢!!

啊哈!

AppCompat 库似乎没有箭头的黑色版本,因此您要做的是采用白色版本并手动更改颜色。文件名为abc_spinner_mtrl_am_alpha.9.png,您可以找到它here。每个 drawable-* 文件夹中有一个(其中 10 个)。

然后只需将此属性添加到您的 EditText:

android:background="@drawable/spinner_arrow_black"

您也可以通过编程方式执行此操作,保持微调器样式而不使用可绘制文件:

EditText editText = (EditText) findViewById(R.id.edit_text);
editText.getBackground().setColorFilter(Color.BLACK, PorterDuff.Mode.MULTIPLY);