纹波效果与图像的相对布局无效

时间:2016-07-01 12:47:46

标签: android android-layout xamarin android-recyclerview material-design

涟漪效应无法使用以下代码!使用以下相对布局作为回收器视图中的项目。使用Xamarin平台构建。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativelayout"
    android:layout_width="fill_parent"
    android:layout_height="120dp"
    android:paddingBottom="1dp"
    android:focusable="true"
    android:clickable="true"
    android:foreground="?android:attr/selectableItemBackground">
    <ImageView
        android:id="@+id/bugImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop" 
        android:src="@drawable/grey_small"
        android:clickable="false"/>
    <TextView
        android:id="@+id/textBugName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/bugImage"
        android:layout_alignTop="@id/bugImage"
        android:layout_alignBottom="@id/bugImage"
        android:gravity="left"
        android:text="Klebsiella pneumoniae"
        android:textColor="#ffffffff"
        android:textSize="30dp"
        android:layout_marginRight="145dp"
        android:padding="10dp"
        android:shadowColor="#000000"
        android:shadowDx="0"
        android:shadowDy="0"
        android:shadowRadius="25"
        android:clickable="false"/>
    <TextView
        android:id="@+id/textBugCount"
        android:layout_width="135dp"
        android:layout_height="wrap_content"
        android:layout_alignRight="@id/bugImage"
        android:layout_alignTop="@id/bugImage"
        android:layout_alignBottom="@id/bugImage"
        android:gravity="right"
        android:text="234"
        android:textColor="#ffffffff"
        android:textSize="30dp"
        android:padding="10dp" 
        android:shadowColor="#000000"
        android:shadowDx="0"
        android:shadowDy="0"
        android:shadowRadius="25"
        android:clickable="false"/>
</RelativeLayout>

我已经尝试了这个android:foreground="?android:attr/selectableItemBackground",但它没有用!

如何解决这个问题?我在api 22上测试了它。

4 个答案:

答案 0 :(得分:3)

不确定你要用这个来完成什么(即设置前景):

android:foreground="?android:attr/selectableItemBackground"

试试这个:

android:background="?android:attr/selectableItemBackground"

虽然我使用自定义drawable来控制着色,如下所示:

在RelativeLayout android:background="@drawable/mybackground"

上设置背景 res / drawable中的

mybackground.xml

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

在res / drawable-v21中, mybackground.xml

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

您已在此处指定了平台v21 +支持的涟漪效应。您可以根据需要调整颜色和状态, disabledBackground colorAccent listBackground 只是命名颜色属性的示例

答案 1 :(得分:1)

使用RelativeLayout作为根视图,您应该使用background =&#34;&#34;设置原生纹波。而不是前景=&#34;&#34;

或者您可以尝试实施能够正确响应前景的卡片视图=&#34;&#34;

答案 2 :(得分:1)

  

机器人:前景= “机器人:ATTR / selectableItemBackground”

仅适用于帧布局。

使用

  

机器人:背景= “机器人:ATTR / selectableItemBackground”

或者最好使用:

  

机器人:背景= “?ATTR / selectableItemBackground”

如果您使用的是compat库

答案 3 :(得分:0)

只需将android:onClick =“add on click listener here”和android:background =“?android:attr / selectableItemBackground”添加到您需要涟漪效果的布局中。它对我有用。