[英]Why Android Studio is removing and/or changing layout_margin* constraints?
我正在使用android.support.constraint.ConstraintLayout
来布局简单卡片的内容视图。
我的 XML 每次都会随机更改:
Design
选项卡Preview
窗格时(在这种情况下,在我的更改过程中更频繁地发生更改)。这些随机变化包括:
layout_marginEnd
)tools:layout_editor_absoluteX
值问题:
PS.: 我的 Android Studio 版本是2.2.3
; 我在 macOS Sierra 上运行它。
正如所建议的那样,在制作layout_height="match_parent"
,我的修改频率降低了,但是当我在 Layout Designer'er 中编辑布局时,我的 XML 仍然混乱: 这次我想通过 Design UI 设置
layout_marginTop
(选择的行是我想要添加的),但我也得到了其他不需要的更改:
layout_marginStart
已删除;app:layout_constraintBottom_toBottomOf
引用的 ID 有一个前缀“+”号,这意味着这些 ID 是新声明的,所以当我使用Goto declaration
功能时,我必须从列表中选择它 - 这不是所需的行为。tools:layout_editor_absoluteX
被添加。 我可以忽略它,但仍然 - 不是我想要发生的。在我的情况下,删除布局约束并再次添加它修复了消失的边距。
我使用的是 Android Studio 4.1.1。
我注意到 Android Studio 2.3 也有同样的问题,每次我使用 ConstraintLayout 从文本视图转到设计视图时,代码都会自动更改。 - 我很确定它会发生在 RelativeLayout 或您想要使用的任何其他布局中。
我猜这是与设计视图相关的某种类型的自动代码生成错误,我还没有找到关闭它的方法。
我不确定这是否有帮助,因为我相信您已经意识到这一点,但是如果您几乎完全在文本视图中工作,则问题永远不会发生。
我偶尔会使用设计视图来开始我的布局,但是一旦我有了一些工作,就个人而言,在开发过程中保持文本视图似乎更快。
正如@JoeyJubb 提到的,使用layout_height="match_parent"
解决了这个问题。 至少 XML 没有被修改。 虽然,有时预览生成不正确。
在我的情况下,升级到最新的 gradle 依赖有帮助:
com.android.support.constraint:constraint-layout:1.0.2
我也开始使用0dp
而不是match_parent
用于layout_width
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.