如何在Android Studio中创建从底部滑入的片段?

时间:2015-07-10 10:15:58

标签: android android-fragments navigation-drawer

如我的问题所述,我希望能够在向上滑动时向上滑动一个小片段。它基本上应该像AndroidStudio提供的导航抽屉一样工作。问题是导航抽屉可以从片段中的左侧或右侧滑动而不是从底部滑动。 由于没有类似“onSwipeUp”事件,我不知道我是怎么回事 可以创建一个解决方法。 那么是否可以从底部向上滑动片段,如果是这样的话?

3 个答案:

答案 0 :(得分:2)

更改您的片段交易,如下所示:

FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.slide_in_bottom, R.anim.slide_out_top);
fragmentTransaction.replace(R.id.container, fragment);
fragmentTransaction.commit();

slide_in_bottom.xml 会设置fragment的输入动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="700"
        android:fromYDelta="100%"
        android:toYDelta="0%" >
    </translate>
</set>

slide_out_top.xml 会设置fragment的退出动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="700"
        android:fromYDelta="0%"
        android:toYDelta="-100%" >
    </translate>
</set>

我希望这会对你有所帮助。

答案 1 :(得分:0)

您应该查看此库https://github.com/gokhanakkurt/android-menudrawer。它提供了一个显示“onSwipeUp”的底部抽屉。 我不知道您是否计划将其用作简单的底部抽屉,或者您想进一步编辑它。

答案 2 :(得分:0)

输出

enter image description here

如何从底部滑动片段

currentFragment = DogDetailFragment.getInstance();//<-Your Fragment
getSupportFragmentManager().beginTransaction()
            .setCustomAnimations(R.anim.slide_in_bottom, R.anim.slide_out_top, R.anim.slide_in_top, R.anim.slide_out_bottom)
            .replace(R.id.fragmentHolder, currentFragment, "DOGDETAIL")
            .addToBackStack("DOGDETAIL")
            .commit();

如何反转按下后退按钮上的动画?

getSupportFragmentManager().popBackStack();

R.anim.slide_in_bottom

<set xmlns:android="http://schemas.android.com/apk/res/android" >
  <translate
    android:duration="500"
    android:fromYDelta="100%"
    android:toYDelta="0%">
  </translate>
</set>

R.anim.slide_out_top

<set xmlns:android="http://schemas.android.com/apk/res/android" >
  <translate
    android:duration="500"
    android:fromYDelta="0%"
    android:toYDelta="-100%">
  </translate>
</set>

R.anim.slide_in_top

<set xmlns:android="http://schemas.android.com/apk/res/android" >
  <translate
    android:duration="500"
    android:fromYDelta="-100%"
    android:toYDelta="-0%">
  </translate>
</set>

R.anim.slide_out_bottom

<set xmlns:android="http://schemas.android.com/apk/res/android" >
  <translate
    android:duration="500"
    android:fromYDelta="0%"
    android:toYDelta="100%">
  </translate>
</set>

演示项目

Woof Repository