0

Ripple-Effekt funktioniert nicht mit dem folgenden Code! Verwenden des folgenden relativen Layouts als Element in der Recycler-Ansicht. Gebäude mit Xamarin-Plattform.Ripple-Effekt funktioniert nicht im relativen Layout mit Bild

<?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> 

Ich habe dies bereits android:foreground="?android:attr/selectableItemBackground" versucht und es hat nicht funktioniert!

Wie behebt man das? Getestet habe ich es auf api 22.

+0

Mehr info .... bitte – Cliff

Antwort

2

nicht sicher, was Sie mit diesem (dh Einstellung Vordergrund) erreichen wollen:

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

Try this:

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

obwohl ich eine benutzerdefinierte verwenden Zeichnend, um Kontrolle über die Färbung zu haben, wie hier gezeigt:

Setzen Sie die Hintergrund auf Ihrem RelativeLayout android:background="@drawable/mybackground"

in res/ziehbar, 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> 

in res/ziehbar-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> 

Hier haben Sie die Ripple-Effekt angegeben haben , unterstützt auf Plattformen v21 +. Sie können die Farben anpassen und stellt fest, auf Ihre Bedürfnisse, disabledBackground, colorAccent, listBackground sind nur einige Beispiele genannt Farbattribute

1

Mit einem RelativeLayout als Stammansicht Sie die native Welligkeit mit Hintergrund sollte =“ "anstelle von Vordergrund ="“

Oder Sie können versuchen, eine cardview zu implementieren, die in den Vordergrund richtig reagieren = ""

1

android: Vordergrund = "android: attr/selectableItemBackground"

funktioniert nur für Frame-Layout.

Verwendung

android: background = "android: attr/selectableItemBackground"

oder es ist besser zu nutzen:

android: background = "attr/selectableItemBackground "

wenn Sie verwenden compat-Bibliothek

0

Fügen Sie einfach Android: onClick = "Add-On-Klick Listener hier" und Android: Hintergrund = "?android: attr/selectableItemBackground "zu Ihrem Layout, wo Sie einen Welleneffekt brauchen. Es hat für mich funktioniert.