首页 > 解决方案 > 什么布局最好根据坐标设置其内部视图

问题描述

哪个布局支持基于 (x, y) 坐标设置其内部/包含的视图,我查看了 AbsoluteLayout 但我发现它自 API 3 以来已被弃用......我知道 AbsoluteLayout 弃用背后的原因,但在我的情况下这不是问题这是必需的。

对于不同的移动屏幕尺寸,绝对布局比其他类型的布局更难维护,因为我们设置了子视图或称为组件的确切位置。定位基于 x(top) 和 y(left) 坐标,并且该定位在各种屏幕分辨率(大小)和纵横比的世界中没有那么有用。

PS:如果我唯一的选择是RelativeLayout或FrameLayout(通过更新子边距),知道用户通过按下并重新定位来控制子/包含视图的位置,如何以最有效的方式做到这一点?

标签: androidandroid-layout

解决方案


我建议您FrameLayout根据触摸坐标为子视图设置动画,不要触摸视图的边距。

最简单的方法是使用内置ViewPropertyAnimatorViewby 调用animate(). 您可以通过调用来翻译视图:

view.animate().translateX(xCoord).translateY(yCoord).setDuration(0).start()

在每一个触摸动作上。

坐标变化太快会出现一些不流畅的运动。检查此库以获得平滑的触摸动画:https ://github.com/wirecube/android_additive_animations


推荐阅读