Skip to content Skip to sidebar Skip to footer

Android: Permanently Elevate View

I have a RecyclerView, that has a RippleEffect as well as a StateListAnimator (which is shown below): anim_lift.xml

Solution 1:

This can be achieved by using the selected state of the View. If you click the View you setSelected(true) and when you click it again setSelected(false).

yourView.setOnClickListener(newView.OnClickListener() {
    publicvoidonClick(View v) {
        v.setSelected(!v.isSelected()); // toggle selected state
    }
});

The selected state then can be handled by the StateListAnimator. You may add a new item to catch state_selected="true":

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

Now if the View is selected it will have an elevation of 8dp. If it's not selected the StateListAnimator will fall through to the default elevation of 0dp.

Post a Comment for "Android: Permanently Elevate View"