2016-10-23 3 views
2

Я пытаюсь добавить анимацию к фрагменту, появляющемуся при нажатии кнопки, снизу.Android: Как скопировать фрагмент?

Фрагмент макета

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

Назвав его здесь:

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 показывает, как скользить вверх и вниз, я просто фрагмент анимировать вверх. Отсюда мой вопрос, второй аргумент функции setcustomanimation()

Я попытался использовать fragmentTransaction.setCustomAnimations() перед фиксацией, но не помог.

Он появляется внизу, но эффект перехода отсутствует. Любое руководство было бы полезно. Спасибо

+2

Возможный дубликат [Android фрагментов и анимации] (http://stackoverflow.com/questions/ 4817900/android-fragments-and-animation) – jakubbialkowski

ответ

1

Вы должны setCustomAnimation до add, вот и все.

также, у вас должна быть проблема с вашим кодом, потому что вы должны использовать библиотеку поддержки фрагмента (v4) вместо приложения и вызвать getSupportFragmentManager и исправить все части кода при использовании фрагмента, а вы не используйте библиотеку поддержки.

Если вы не хотите, чтобы это изменить, вы можете взять этот код для slide_up анимации:

<?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"/> 
+0

Каким будет второй аргумент setcustomanimation? setCustomAnimation (R.id.slideup ,?) – AIS

+0

фрагментTransaction.setCustomAnimations (R.animator.slide_up, 0); или R.anim.slide_up, если вы используете библиотеку поддержки. –

+0

Смотрите мой отредактированный код. Не оживлял. Использовал ваш слайд_up. Фрагмент просто появляется. Скользящий эффект отсутствует. – AIS

Смежные вопросы