Android开发:TextView缺失布局约束问题求助
解决TextView缺失布局约束的问题
你当前的TextView如果是放在ConstraintLayout(Android Studio默认布局容器)里,缺少的是布局约束属性——ConstraintLayout要求子View必须设置至少水平和垂直方向的约束,来确定它在布局中的位置,否则会出现位置异常或者IDE警告。
需要添加的约束类型:
- 水平方向约束:控制View在水平轴的位置,常见选项:
- 和父布局左对齐:
app:layout_constraintStart_toStartOf="parent" - 和父布局右对齐:
app:layout_constraintEnd_toEndOf="parent" - 水平居中:同时设置
app:layout_constraintStart_toStartOf="parent"和app:layout_constraintEnd_toEndOf="parent"(默认就是居中,可通过layout_constraintHorizontal_bias调整偏移)
- 和父布局左对齐:
- 垂直方向约束:控制View在垂直轴的位置,常见选项:
- 和父布局顶部对齐:
app:layout_constraintTop_toTopOf="parent" - 和父布局底部对齐:
app:layout_constraintBottom_toBottomOf="parent" - 垂直居中:同时设置
app:layout_constraintTop_toTopOf="parent"和app:layout_constraintBottom_toBottomOf="parent"
- 和父布局顶部对齐:
修改后的示例代码(固定在父布局左上角):
<TextView android:id="@+id/rank" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="#1" android:textColor="#006600" android:textSize="40sp" android:textStyle="bold" android:paddingTop="15dp" android:paddingStart="15dp" android:paddingEnd="@dimen/activity_horizontal_margin" android:paddingBottom="@dimen/activity_vertical_margin" <!-- 添加布局约束 --> app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" />
补充说明:
如果你的TextView是放在LinearLayout、RelativeLayout这类旧布局里,不需要ConstraintLayout的约束属性:
- LinearLayout可通过
android:layout_gravity控制位置,或依靠布局的orientation自动排列 - RelativeLayout可使用
android:layout_alignParentTop、android:layout_toRightOf这类属性定位
内容的提问来源于stack exchange,提问作者Learn2Code
相关产品推荐
相关产品推荐

