可选项背景不会产生涟漪效果

3

我正在尝试将材料设计应用于旧代码。

我希望按钮在点击时具有涟漪效果,但没有显示出来。

我正在使用默认的?android:attr/selectableItemBackground

这是按钮的XML:

<Button
                android:text="Wandio"
                android:padding="10dp"
                android:textColor="#ffffff"
                android:background="?android:attr/selectableItemBackground"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/wandio_link" />

values文件夹中的样式:

<resources>
    <color name="main_green">#45bb61</color>
    <style name="AppTheme" parent="AppTheme.Base">
    </style>
    <style name="Theme.Splash" parent="android:Theme">
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>
    <style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorPrimary">#909CD4</item>
        <item name="colorPrimaryDark">#D490CA</item>
        <item name="colorAccent">#FFFFFF</item>
        <item name="android:imageButtonStyle">@style/ImageButtonStyle</item>
        <item name="android:windowBackground">@color/main_green</item>
    </style>
  <style name="ImageButtonStyle">
    <item name="android:background">@android:color/transparent</item>
  </style>
</resources>

values-v21文件夹中的样式:

<resources>
<style name="AppTheme" parent="AppTheme.Base">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowAllowEnterTransitionOverlap">true</item>
    <item name="android:windowAllowReturnTransitionOverlap">true</item>
    <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:fitsSystemWindows">true</item>
    <item name="android:imageButtonStyle">@style/StyleApi21</item>
    <item name="android:buttonStyle">@style/StyleApi21</item>
</style>
<style name="StyleApi21">
         <item name="android:background">?android:attr/selectableItemBackgroundBorderless</item>
</style>

我以前从未遇到过这个问题。但是我找不到我缺少的东西。 有什么建议吗?

1个回答

2

我尝试了相同的方法,并在我的自定义按钮xml中使用了这个:

<item ><ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="?android:colorControlHighlight">
        <item android:id="@android:id/mask">
            <shape android:shape="oval">
                <solid android:color="#FFBB00" />
            </shape>
        </item>
        <item>
            <shape android:shape="oval">
                <solid android:color="@color/colorAccent" />

            </shape>
        </item>
    </ripple>

这是我为老设备准备的另一个XML文件:

<item>
        <selector xmlns:android="http://schemas.android.com/apk/res/android">

            <item android:drawable="@drawable/fab_selected" android:state_selected="true"/>
            <item android:drawable="@drawable/fab_pressed" android:state_pressed="true"/>
            <item android:drawable="@drawable/fab_normal"/>

        </selector>
    </item>

这些可绘制文件只是按钮的不同颜色。


我应该为早期版本的设备添加另一个可绘制对象,还是这已经足够了? - arsena
是的,我为v21添加了一个drawable,并为旧设备添加了一个。 - Tito
你能为旧设备发布另一个XML吗? - arsena

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