样式TextView就像一个带有appcompat v21的Spinner

时间:2014-12-06 20:10:24

标签: android textview android-spinner android-appcompat material-design

我想让TextView看起来像一个带有新材质样式的微调器。

我设法用" Widget.Material.Light.Spinner"风格,但我在AppCompat(v21)资源中找不到任何替代方案。 我的xml:

<TextView
        android:id="@+id/sp_league_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        tools:text="Premier league"
        style="@android:style/Widget.Material.Light.Spinner"
        android:textColor="@android:color/white" />

4 个答案:

答案 0 :(得分:17)

我选择:

style="@style/Widget.AppCompat.Spinner"

但随意选择另一个:enter image description here

答案 1 :(得分:1)

风格解决方案对我没用,但我找到了另一个解决方案:

我使用的是AppCompatButton,并拥有:

XML:

<android.support.v7.widget.AppCompatButton
 android:background="@drawable/abc_spinner_mtrl_am_alpha"
 ... />

爪哇:

((AppCompatButton)findViewById(...)).setSupportBackgroundTintList(new ColorStateList(new int[][]{new int[0]}, new int[]{0xff52A1E8}));
编辑:似乎它不再适用,但找到了另一种解决方案:

<style name="Widget.MyTheme.HeaderBar.Spinner" parent="Widget.AppCompat.Light.Spinner.DropDown.ActionBar">
</style>

操作栏确实如此,但它也适用于其他情况。

答案 2 :(得分:0)

我测试了这里提到的解决方案

1.使用style="@style/Widget.AppCompat.Spinner)和
2.使用Widget.AppCompat.Light.Spinner.DropDown.ActionBar

这两项仅适用于Android 5.x及以上设备,不适用适用于在4.x及以下版本上运行的Android设备。

因此,我正在为那些想要对所有设备的TextView产生下拉效果的人发布我的解决方案。

应用需要在App中的Drawable文件夹中创建一个drawable,让我们说dropdown_spinner.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/ic_icon_arrow"
    android:gravity="end" />

然后只需将其用作TextView的背景,如下所示:

<TextView
     android:id="@+id/mySpinnerTextView"
     android:background="@drawable/dropdown_spinner"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     />

答案 3 :(得分:0)

在AndroidX中,使用style="@style/TextAppearance.AppCompat.Widget.TextView.SpinnerItem"