涟漪效应无法使用以下代码!使用以下相对布局作为回收器视图中的项目。使用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上测试了它。
答案 0 :(得分:3)
不确定你要用这个来完成什么(即设置前景):
android:foreground="?android:attr/selectableItemBackground"
试试这个:
android:background="?android:attr/selectableItemBackground"
虽然我使用自定义drawable来控制着色,如下所示:
在RelativeLayout android:background="@drawable/mybackground"
, 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”添加到您需要涟漪效果的布局中。它对我有用。