替换片段的高程值错误

Posted

技术标签:

【中文标题】替换片段的高程值错误【英文标题】:Replacing fragments have wrong elevation value 【发布时间】:2018-04-12 01:56:21 【问题描述】:

你好再次堆栈溢出。我还有另一个片段问题。 (我使用的是 android.app.Fragment 不支持 Fragments)

我正在尝试替换片段。但这并不像使用那么简单:

fragmentTransaction
    .replace(containerId, newFragment)
    .addToBackStack("unique tag")
    .commit()

为什么不呢?好问题朋友,因为我的newFragment 有一个过渡动画。

动画在哪里定义?另一个很好的问题,它在片段 onCreateAnimator() 中定义

为什么要在那里定义它? 可以找到原因的详细答案:Nested fragments transitioning incorrectly。现在你需要相信这就是我的项目需要做的事情。

动画在做什么? 从屏幕边缘到屏幕中心的简单滚动,完全覆盖原始片段。请记住,在这种情况下,旧片段只是原地不动。有不动的动画效果。


有什么问题?

问题在于 newFragment 的海拔(或 z?)值似乎比旧的低。因此无法观察到过渡,因为旧片段位于新片段上方。在动画持续时间结束时,您会看到新片段在旧片段上方闪烁。我希望 newFragment 从动画开始就覆盖旧的。


为什么不使用 add? 这似乎会带来更多问题,因为我有很多片段要换入和换出视图。下次我使用替换时,使用 add 似乎会触发他们的退出动画,即使它前面有 1...n 个片段。他们也不会暂停。

为什么不设置海拔?因为我支持没有海拔属性的 api 19。

为什么不将 ViewCompat.setElevation() 用于 api 19? 我试过了,结果同样失败。

有没有人找到解决这个问题的方法?

【问题讨论】:

在提交事务之前,您是否尝试过申请setReorderingAllowed(false) @azizbekian 仅适用于 API 26+ 不完全正确,支持片段至少可用于 API 14 及更高版本。 对不起,我没有使用支持片段管理器 对于框架片段使用setAllowOptimization(false) 【参考方案1】:

我遇到了同样的问题,并且花了很多时间试图解决它。不幸的是,根据我的经验,在此设置上无法使其适用于 API

ViewCompat.setElevation() 只是

我唯一能建议的是将 API

【讨论】:

恐怕这是我唯一的选择。

以上是关于替换片段的高程值错误的主要内容,如果未能解决你的问题,请参考以下文章

错误检测------try-catch语句 From 《高程3》

从片段着色器中的地形高程数据计算法线

Android Lollipop 上的高程 + 透明度错误

金属着色器混合片段接收错误的颜色值

Choose unique values for the 'webAppRootKey' context-param in your web.xml files! 错误的解决(代码片段

请问Arcgis中由高程点生成TIN数据时,为啥失败?