gpt4 book ai didi

android - fragment 向上滑动动画不显示下方的 fragment

转载 作者:行者123 更新时间:2023-11-30 01:45:15 25 4
gpt4 key购买 nike

当打开一个 fragment 时,我需要添加一个动画以将其从底部向上滑动,然后当该 fragment 关闭时它需要向下滑动离开屏幕。

我在向上滑动的 fragment 中有以下代码,几乎可以正常工作:

public override Animator OnCreateAnimator (FragmentTransit transit, bool enter, int nextAnim) {
var display = this.Activity.WindowManager.DefaultDisplay;
var size = new Point ();
display.GetSize (size);
var displayHeight = size.Y;

var animator = enter ?
ObjectAnimator.OfFloat (this, "translationY", displayHeight, 0) :
ObjectAnimator.OfFloat (this, "translationY", 0, displayHeight);
animator.SetDuration (300);
return animator;
}

向上滑动动画存在一个问题...它会立即显示 fragment 的白色背景和操作栏(它没有动画),操作栏下方的内容会向上滑动。这意味着当新 fragment 向上滑动时,您将失去在新 fragment 下方显示前一个 fragment 的效果,因为您只会看到内容后面的白色背景向上滑动。

向下滑动正常,顶部的 fragment 会向下滑动,您可以在向下滑动时看到其下方的 fragment 。

以下是打开新 fragment 的代码,以防相关:

var transaction = activity.FragmentManager.BeginTransaction ();
transaction.Replace (navigationContext.ContainerResourceId, fragment, fragment.Name);
transaction.AddToBackStack (fragment.Name);
transaction.Commit ();

关于如何使向上滑动动画正常工作,在向上滑动时显示下面的 fragment ,有什么想法吗?

最佳答案

使用 replace 表示删除之前的 fragment。尝试使用 add:

var transaction = activity.FragmentManager.BeginTransaction ();
transaction.add(navigationContext.ContainerResourceId, fragment, fragment.Name);
transaction.AddToBackStack (fragment.Name);
transaction.Commit ();

关于android - fragment 向上滑动动画不显示下方的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33809033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com