为什么这种涟漪效应不能按预期工作?

时间:2015-09-19 16:28:43

标签: android drawable material-design

我正在使用drawable来更改导航抽屉里面textViews的背景和文本。我想保持文本区域的背景为白色,但通过测试保持背景白色不会在背景上显示涟漪效果,而是将其用于使文本变为灰色的文本。在下面的图片中,正在按下中间的一个,导致涟漪效应。

The ripple effect

以下是用于进行颜色更改的可绘制文件

背景:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/selected" android:state_activated="true" />
    <item android:drawable="@color/white" />
</selector>

文本:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/primary" android:state_activated="true" />
    <item android:color="@color/primary_text" />
</selector>

textView布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="25.0sp"
        android:background="@drawable/activated_background"
        android:textColor="@drawable/activated_text"
        android:id="@id/text1"
        android:layout_weight="0"
        android:layout_marginTop="8dip"
        android:layout_marginBottom="8dip" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

在我的情况下,第一次点击后涟漪效果正常,但是第一次点击它对我不起作用。已经使用 android:state_activated =“true”更改了背景选择器文件,并在main.xml android:clickable =“true”中更改了背景选择器文件,然后它始终正常工作。

selector.xml(在res \ drawable \ selector.xml下)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:drawable="@drawable/card_bg_pressed" android:state_enabled="true" android:state_pressed="true"/>
<item android:state_activated="true" android:drawable="@drawable/card_bg_focused" android:state_enabled="true" android:state_focused="true"/>
<item android:state_activated="true" android:drawable="@drawable/card_bg_selected" android:state_enabled="false" android:state_selected="true"/>
</selector>

在activity_main.xml

 <com.mysample.RecyclingImageView
    android:id="@+id/imageview_overlay"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:background="@drawable/selector"
    android:clickable="true" />