从底部滑入片段,推高现有的全屏片段

时间:2015-01-12 21:59:04

标签: android android-fragments

我正在尝试创建一个包含大部分时间全屏幕片段的UI。如果用户采取某些特定操作,我想从屏幕底部弹出第二个片段。实际上,"弹出"可能是一个错误的术语 - 我真正想要的是让它看起来好像最初的片段在屏幕上向上滑动大约1/3,而第二个片段滑入以填充底部1/3。换句话说,对于用户来说,它应该看起来不是一个片段在另一个片段之上,而是它们两个片段都滑动了#34;一些金额。

我一直在尝试一些方法来做到这一点。即,使第二个片段的视图原点成为屏幕的底部,然后将两个视图翻译成恒定的量。这并没有优雅地运作。例如,水龙头识别器似乎没有排成一行"在翻译顶视图后正确。

所以这让我觉得我应该退后一步并问 - 最合适的方法是什么?我应该处理片段和事务,还是严格地为视图对象设置动画?

我可以采取的两种一般方法是:

1)使用图层,将第二个片段放在第一个片段下面,按照我想要的方式调整大小,然后将第一个片段翻译到第二个片段的高度以上。

2)将两个片段放在同一层上,彼此相邻,但第二个片段离开屏幕的下边缘。然后将它们向上翻译一个恒定的数量。

3)我还没有想过的其他东西。

思想?

1 个答案:

答案 0 :(得分:0)

如果使用普通的slide_up过渡使用新片段替换容器,它会将当前的片段向上推离屏幕。

例如:

R.id.fragment_container包含片段A. 执行fragment transaction以使用片段B和自定义转换替换R.id.fragment_container,并且A将向上和向下滑动。

您还可以通过让片段A保持片段而不是父片段并使用子片段使其直接滑过现有片段。

希望这是有道理的。