我正在尝试使用ConstraintLayout创建一个包含四个圆圈的垂直链。它渲染得很好,直到我向ConstraintLayout添加填充,此时整个视图都会丢失。
我的布局文件的内容如下
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/black" />
<corners android:radius="300dp" />
</shape>
circle.xml
{{1}}
我看到的输出是
如果我删除
来自ConstraintLayout的机器人:填充= “10dp”
,它按预期工作。
此外,如果我从圆圈3中删除左右约束,它的工作正常。但是,这是我在我的应用程序中的精简版本。我尝试从circle3中删除左右约束,但它仍然无法正常工作。我需要那里的填充物。如果有人能让我知道为什么它会在这里表现出来,那么它将有助于解决原始问题。
答案 0 :(得分:1)
尝试不是在布局中定义填充,而是为每个视图定义填充。意思是你移动
android:padding="10dp"
对于想要填充的任何imageViews
答案 1 :(得分:1)
TL; DR
我发现根据经验,当您想要将视图B放在视图A下方时,请确保A具有constraintTop_toBottomOf =&#34; view_above_me&#34;而不是constraintTop_toTopOf =&#34; view_beside_me&#34;
对我来说问题解决了这样:
您有4个视图:view1,view2a,view2b,view3,使view1位于顶部,view2a和view2b位于其下方,view2b位于view2a右侧,view3位于它们下方。
view1有layout_constraintTop_toTopOf="parent"
view2a有layout_constraintBottom_toTopOf="@id/view1"
view2b有layout_constraintTop_toTopOf="@id/view2a"
view3有layout_constraintTop_toBottomOf="@id/view2b
这会产生问题。解决方案是将view3约束替换为以下内容:layout_constraintTop_toBottomOf="@id/view2a"
请注意,view2b对view2a有一个约束top,而不是view1 bottom,因此padding隐藏了我的view3。