我正在尝试创建一个包含大部分时间全屏幕片段的UI。如果用户采取某些特定操作,我想从屏幕底部弹出第二个片段。实际上,"弹出"可能是一个错误的术语 - 我真正想要的是让它看起来好像最初的片段在屏幕上向上滑动大约1/3,而第二个片段滑入以填充底部1/3。换句话说,对于用户来说,它应该看起来不是一个片段在另一个片段之上,而是它们两个片段都滑动了#34;一些金额。
我一直在尝试一些方法来做到这一点。即,使第二个片段的视图原点成为屏幕的底部,然后将两个视图翻译成恒定的量。这并没有优雅地运作。例如,水龙头识别器似乎没有排成一行"在翻译顶视图后正确。
所以这让我觉得我应该退后一步并问 - 最合适的方法是什么?我应该处理片段和事务,还是严格地为视图对象设置动画?
我可以采取的两种一般方法是:
1)使用图层,将第二个片段放在第一个片段下面,按照我想要的方式调整大小,然后将第一个片段翻译到第二个片段的高度以上。
2)将两个片段放在同一层上,彼此相邻,但第二个片段离开屏幕的下边缘。然后将它们向上翻译一个恒定的数量。
3)我还没有想过的其他东西。
思想?
答案 0 :(得分:0)
如果使用普通的slide_up过渡使用新片段替换容器,它会将当前的片段向上推离屏幕。
例如:
R.id.fragment_container包含片段A.
执行fragment transaction
以使用片段B和自定义转换替换R.id.fragment_container,并且A将向上和向下滑动。
您还可以通过让片段A保持片段而不是父片段并使用子片段使其直接滑过现有片段。
希望这是有道理的。