android - 什么布局最好根据坐标设置其内部视图
问题描述
哪个布局支持基于 (x, y) 坐标设置其内部/包含的视图,我查看了 AbsoluteLayout 但我发现它自 API 3 以来已被弃用......我知道 AbsoluteLayout 弃用背后的原因,但在我的情况下这不是问题这是必需的。
对于不同的移动屏幕尺寸,绝对布局比其他类型的布局更难维护,因为我们设置了子视图或称为组件的确切位置。定位基于 x(top) 和 y(left) 坐标,并且该定位在各种屏幕分辨率(大小)和纵横比的世界中没有那么有用。
PS:如果我唯一的选择是RelativeLayout或FrameLayout(通过更新子边距),知道用户通过按下并重新定位来控制子/包含视图的位置,如何以最有效的方式做到这一点?
解决方案
我建议您FrameLayout
根据触摸坐标为子视图设置动画,不要触摸视图的边距。
最简单的方法是使用内置ViewPropertyAnimator
的View
by 调用animate()
. 您可以通过调用来翻译视图:
view.animate().translateX(xCoord).translateY(yCoord).setDuration(0).start()
在每一个触摸动作上。
坐标变化太快会出现一些不流畅的运动。检查此库以获得平滑的触摸动画:https ://github.com/wirecube/android_additive_animations
推荐阅读
- c++ - 多态向量 C++ – 没有匹配的成员函数来调用“比较”
- sql - 将层次结构放在其自己的单独维度中还是将其设置为相关维度的一部分?
- algorithm - Mandelbrot 集的内部距离估计算法
- performance - SpyderKernelApp WARNING No such comm in windows 10 on spyder3 ide
- sql - 没有参数时从表中获取所有数据的 SQL 查询
- javascript - 删除文件名的扩展名并使用正则表达式 vscode 片段将 camelCase 转换为蛇形大小写?
- flutter - 包含特定文档的 SreamProvider
- hyperledger-fabric - 将客户注册信息链下存储在超级账本结构中的最佳方式是什么
- reactjs - 如何将 Props 传递到 React Router 6 以便可以在 mapStateToProps(state,ownProps) 中访问它?
- flutter - Flutter Stacking children in a Stack