首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android Studio中创建从底部滑入的片段?

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

Stack Overflow用户
提问于 2015-07-10 18:15:58
回答 3查看 6.1K关注 0票数 1

正如我的问题中所描述的,我希望当我向上滑动时能够滑上一小块碎片。它基本上应该像AndroidStudio提供的导航抽屉一样工作。问题是导航抽屉可以在片段中从左或右滑动,但不能从底部滑动。因为没有类似"onSwipeUp“事件的东西,所以我不知道如何创建一个变通方法。那么,从底部向上滑动片段是可能的吗?如果是的话,如何进行?

EN

回答 3

Stack Overflow用户

发布于 2015-07-10 18:26:47

更改您的片段事务,如下所示:

代码语言:javascript
复制
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的入口动画

代码语言:javascript
复制
<?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的退出动画

代码语言:javascript
复制
<?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>

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

票数 3
EN

Stack Overflow用户

发布于 2015-07-10 19:59:01

你应该看看这个库,https://github.com/gokhanakkurt/android-menudrawer。它提供了一个显示"onSwipeUp“的底部抽屉。我不知道你是打算把它当作一个简单的底部抽屉,还是想进一步编辑它。

票数 0
EN

Stack Overflow用户

发布于 2020-06-13 07:57:40

输出

如何从底部滑入片段

代码语言:javascript
复制
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();

如何反转按back按钮时的动画?

代码语言:javascript
复制
getSupportFragmentManager().popBackStack();

R.anim.slide_in_bottom

代码语言:javascript
复制
<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

代码语言:javascript
复制
<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

代码语言:javascript
复制
<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

代码语言:javascript
复制
<set xmlns:android="http://schemas.android.com/apk/res/android" >
  <translate
    android:duration="500"
    android:fromYDelta="0%"
    android:toYDelta="100%">
  </translate>
</set>

演示项目

Woof Repository

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31338267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档