Android 涟漪效应与图像在相对布局中不起作用
Ripple effect不适用于以下代码!在“回收器”视图中将以下相对布局用作项目。使用Xamarin平台构建Android 涟漪效应与图像在相对布局中不起作用,android,android-layout,xamarin,android-recyclerview,material-design,Android,Android Layout,Xamarin,Android Recyclerview,Material Design,Ripple effect不适用于以下代码!在“回收器”视图中将以下相对布局用作项目。使用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_pa
<?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/selectableitemsbackground”
,但没有成功
如何解决这个问题?我在api 22上测试了它。不确定您想用它实现什么(即设置前景): 试试这个:
android:background="?android:attr/selectableItemBackground"
虽然我使用自定义的drawable来控制颜色,如下所示:
在您的RelativeLayoutandroid: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>
<?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>
在res/drawable-v21中,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>
<?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>
这里您已经指定了ripple effect,它在v21+平台上受支持。您可以根据需要调整颜色和状态,禁用Background、colorAccent、listBackground只是命名颜色属性的示例不确定您要用它实现什么(即设置前景): 试试这个:
android:background="?android:attr/selectableItemBackground"
虽然我使用自定义的drawable来控制颜色,如下所示:
在您的RelativeLayoutandroid: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>
<?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>
在res/drawable-v21中,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>
<?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>
这里您已经指定了ripple effect,它在v21+平台上受支持。您可以根据需要调整颜色和状态,disabledBackground、colorAccent、listBackground只是命名颜色属性的示例将RelativeLayout作为根视图,您应该将本机ripple设置为background=“”而不是前台=“”
或者您可以尝试实现一个cardview,该cardview将正确响应前台=“”,并将RelativeLayout作为根视图。您应该将本机ripple设置为background=“”,而不是前台=“” 或者您可以尝试实现一个cardview,它将正确响应前台=“” android:前台=“?android:attr/selectableItemBackground” 仅适用于框架布局 使用 android:background=“?android:attr/selectableItemBackground” 或者最好使用: android:background=“?attr/selectableItemBackground” 如果您正在使用compat库 android:前台=“?android:attr/selectableItemBackground” 仅适用于框架布局 使用 android:background=“?android:attr/selectableItemBackground” 或者最好使用: android:background=“?attr/selectableItemBackground”
如果您正在使用compat库,只需将android:onClick=“单击此处添加侦听器”和android:background=“?android:attr/selectableItemBackground”添加到需要连锁反应的布局中即可。这对我很有用。只需将android:onClick=“add on click listener here”和android:background=“?android:attr/selectableItemBackground”添加到需要连锁反应的布局中即可。这对我很有用。更多信息。。。。请提供更多信息。。。。请注意,它可以工作,但问题是在用户注意到ripple之前,视图已经更改。长点击显示涟漪,但普通点击不像WhatsApp那样显示涟漪。在WhatsApp中,它显示ripple,然后视图被更改,但是我无法实现此功能,尽管我添加了这些代码行。它可以工作,但问题是在用户注意到ripple之前,视图被更改。长点击显示涟漪,但普通点击不像WhatsApp那样显示涟漪。在WhatsApp中,它显示ripple,然后视图被更改,但是我无法实现此功能,尽管我添加了这些代码行。