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