AIS AIS - 1 month ago 13
Android Question

Android : How to slide up a fragment?

I am trying to add animation to a fragment appearing on button click, from bottom.

Fragment Layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:orientation="vertical" >

<TextView
android:layout_width="wrap_content"
android:layout_height="50dp"
android:background="@color/wallet_holo_blue_light"
android:layout_gravity="center"
android:text="This is a fragmentt layout"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />

</RelativeLayout>


Slide up.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime">

<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:fromYDelta="50.0%p"
android:interpolator="@android:anim/decelerate_interpolator"
android:toYDelta="30" />
</set>


Calling it here:

public void onClick(View view) {

if(view == button ){

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
FragmentOnMap hello = new FragmentOnMap();

fragmentTransaction.add(R.id.fragment_container, hello, "HELLO");
fragmentTransaction.setCustomAnimations(R.animator.slide_up,0);
fragmentTransaction.commit();
}


}


Android Fragments and animation shows how to slide up AND down, I just the fragment to animate up. Hence my question, of the second argument of setcustomanimation() function

I tried using
fragmentTransaction.setCustomAnimations()
just before commit, but didn't help.

It does appear at the bottom, but there is no transition effect.
Any guidance would be useful.
Thank you

T.S T.S
Answer

You should setCustomAnimation before add, that's all.

also, you should have a problem with your code because you should use the support library of the fragment (v4) instead of app, and call getSupportFragmentManager and fix all parts of code when you use fragment, and you don't use the support library.

If you don't want to change this, you can take this code for the slide_up animation:

<?xml version="1.0" encoding="utf-8"?>
<objectAnimator
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:propertyName="translationY"
    android:valueType="floatType"
    android:valueFrom="1280"
    android:valueTo="0"
    android:duration="@android:integer/config_mediumAnimTime"/>