我是android studio的新手,无法选择布局。有5种不同的布局。我正在使用约束布局,因为它是默认布局。我的一些朋友说很难使用。这些布局之间的主要区别是什么?
答案 0 :(得分:0)
如果在Web开发中使用过布局系统(例如引导程序或某些网格系统),则会发现它易于理解。最初,“约束布局”可能看起来很吓人,而且不容易理解,但确实以响应方式定位视图增加了很多功能。
约束概述
要在ConstraintLayout中定义视图的位置,必须至少添加 视图的一个水平约束和一个垂直约束。每 约束表示与另一个视图的连接或对齐, 父级布局或不可见的准则。每个约束定义 视图沿垂直或水平轴的位置;所以每个 视图必须对每个轴至少有一个约束,但是通常 还有更多的必要。将视图放到布局编辑器中时, 即使没有任何限制,它也会停留在离开它的位置。但是这个 只是为了使编辑更容易;如果您没有视图时的约束 在设备上运行您的布局,它会绘制在位置[0,0]( 左上角)。
尝试此Codelab:
https://codelabs.developers.google.com/codelabs/constraint-layout/index.html?index=..%2F..index#0
一些资源:
https://developer.android.com/training/constraint-layout#constraints-overview
https://developer.android.com/training/constraint-layout
https://www.youtube.com/watch?v=P9Zstbk0lPw
我个人使用协调器和相对布局。如果愿意,可以尝试一下。我建议您必须从这两个开始,但一定要在示例项目中尝试其他布局并了解它们。
https://github.com/codepath/android_guides/wiki/Constructing-View-Layouts
答案 1 :(得分:0)
我找到了very clear answer:
FrameLayout 用于容纳一个子对象。例如,将Recycler View放在FrameLayout内,但是没有其他内容。
CoordinatorLayout 是FrameLayout的改进版本。最常用 用于提高子对象的性能。例如,让我们 说我们有一个ListView,我想更改滚动行为 当用户交互发生时。我可以在其中使用CoordinatorLayout 使ListView表现出我想要的效果。
LinearLayout 用于将子对象沿一个方向对齐,即 水平或垂直。例如,如果我有一个TextView, ImageView和EditText,我希望它们排成一行,因此我可以使用 使用水平方向的LinearLayout可以做到这一点。
RelativeLayout 比上面两个要复杂一些,但要复杂得多 能力。 RelativeLayout旨在对齐子对象 相对于父对象或其他子对象的位置。例如, 如今,我们通常在屏幕末尾有一个按钮 右侧,完成此操作的方式我们将RelativeLayout创建为 父项,然后在其内部使用参数alignParentBotton的按钮 并alignParentRight = True。
ConstraintLayout 是RelativeLayout的更新版本,即提供 与RelativeLayout相比,参数更多,功能得到了改善。