studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android android-recyclerview statelistdrawable

programacion - Android: elevar de forma permanente la vista



manual de programacion android pdf (1)

Esto se puede lograr utilizando el estado seleccionado de la Vista. Si hace clic en Ver, setSelected(true) y cuando vuelva a hacer clic, setSelected(false) .

yourView.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { v.setSelected(!v.isSelected()); // toggle selected state } });

El StateListAnimator puede manejar el estado seleccionado. Puede agregar un nuevo artículo para atrapar state_selected="true" :

<item android:state_selected="true"> <set> <objectAnimator android:duration="@android:integer/config_shortAnimTime" android:propertyName="translationZ" android:valueTo="8dp" android:valueType="floatType"/> </set> </item>

Ahora, si se selecciona View, tendrá una elevación de 8dp . Si no se selecciona, StateListAnimator caerá a la elevación predeterminada de 0dp .

Tengo un RecyclerView , que tiene un efecto RippleEffect, así como un StateListAnimator (que se muestra a continuación):

anim_lift.xml

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:state_pressed="true"> <set> <objectAnimator android:duration="@android:integer/config_shortAnimTime" android:propertyName="translationZ" android:valueTo="8dp" android:valueType="floatType"/> </set> </item> <item> <set> <objectAnimator android:duration="@android:integer/config_shortAnimTime" android:propertyName="translationZ" android:valueTo="0" android:valueType="floatType"/> </set> </item> </selector>

La pregunta es, ¿cómo se podría elevar la vista que está utilizando este xml cuando se hace clic en él, y luego quitarlo cuando se haga clic nuevamente en la vista?