ConstraintLayout是完美的布局吗?
非也!
<TextViewandroid:id="@+id/tv_tittle_msg"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="16dp"android:layout_marginRight="16dp"android:layout_marginTop="8dp"android:text="@string/string_sss"android:textColor="@color/color_basefunction_2F353B"android:textSize="14sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintTop_toBottomOf="@+id/tv_tittle" />
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
之后
layout_marginHorizontal 这个属性
不起作用
在使用 ConstraintLayout
时,app:layout_constraintStart_toStartOf="parent"
和 app:layout_constraintEnd_toEndOf="parent"
会将视图的水平位置完全居中,这种约束方式会覆盖 layout_marginHorizontal
的作用。
这是因为 layout_marginHorizontal
的设置逻辑是为左右外边距添加间距,而水平居中对齐(通过上述约束)已经将视图的水平位置固定,因此左右的 margin
无法生效。
解决办法有很多,网络各种什么guideline、layout_constraintWidth_default、Barrier、使用 Padding 替代 Margin
都没有必要,外面再包一层LinearLayout就行了
<LinearLayoutandroid:id="@+id/ll_tittle_msg"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="16dp"android:layout_marginRight="16dp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/tv_tittle"><TextViewandroid:id="@+id/tv_tittle_msg"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:text="@string/string_xxx"android:textColor="@color/color_basefunction_2F353B"android:textSize="14sp"/></LinearLayout>