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

问题描述 投票:1回答:3

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

android android-fragments navigation-drawer
3个回答
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>

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


0
投票

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


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

© www.soinside.com 2019 - 2024. All rights reserved.