我在屏幕的右上角(或任何地方)有一个视图。我想将此视图动画到某个位置。该位置由另一个 xml 布局定义。如何确定视图在其他布局中的坐标,以便将其设置为动画到这个位置?
背景:假设视图显示了一个放置在右上角的计算器。当用户点击这个计算器视图时,它应该被动画到一个更当前的地方。在这个动画之后,当前片段被替换为包含完全相同的视图(和其他视图)以及计算器逻辑的 CalculatorFragment。目标是将计算器动画到 CalculatorFragment 的 xml 布局定义的确切位置。这样就可以创建一个“无缝”的 FragmentTransition。
提出这个问题的另一种方式可能是“如何在不显示在屏幕上的情况下找出视图的位置?”
到目前为止,最有希望的方法是这个(但我只得到零作为坐标):
View fragmentView = getActivity().getLayoutInflater().inflate(R.layout.fragment_calculator, null);
View calc = fragmentView.findViewById(R.id.includeCalculator);
int[] coords = new int[2];
calc.getLocationInWindow(coords);
pictureframe.setAnimateToX(coords[0]);
pictureframe.setAnimateToY(coords[1]);
Log.v(TAG, "X: " + coords[0] + " Y: " + coords[1]);
谢谢你!