如何实现TextView居中/居底?现有代码需调整哪些部分?
实现TextView居中/居底效果的代码修改方案
核心概念区分
android:gravity:控制TextView内部文字的对齐方式(比如居中、居左/居右)android:layout_gravity:控制TextView自身在父容器中的位置(比如父容器底部、居中)
场景1:让TextView在父容器中水平+垂直居中,且内部文字居中
LinearLayout父容器下的修改代码
<TextView android:textAppearance="?android:textAppearanceMedium" android:gravity="center" <!-- 内部文字居中 --> android:autoLink="web" android:layout_gravity="center" <!-- 自身在父容器居中 --> android:id="@id/txtDefaultpassword" android:padding="40.0px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/defaultpassword" />
注意:如果父LinearLayout的
orientation为vertical,layout_gravity="center"仅控制水平居中;若要实现垂直+水平居中,可在父容器添加android:gravity="center",或把TextView的layout_width设为match_parent,同时将layout_gravity改为center_vertical。
ConstraintLayout父容器下的修改代码(更推荐)
<TextView android:textAppearance="?android:textAppearanceMedium" android:gravity="center" android:autoLink="web" android:id="@id/txtDefaultpassword" android:padding="40.0px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/defaultpassword" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" />
场景2:让TextView在父容器中居底,内部文字可选居中/居底
情况A:居底且内部文字居中
LinearLayout父容器
<TextView android:textAppearance="?android:textAppearanceMedium" android:gravity="center" <!-- 内部文字居中 --> android:autoLink="web" android:layout_gravity="bottom|center_horizontal" <!-- 自身居底+水平居中 --> android:id="@id/txtDefaultpassword" android:padding="40.0px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/defaultpassword" />
若父LinearLayout为vertical方向,
layout_gravity="bottom"仅控制垂直居底,需搭配center_horizontal实现水平居中。
ConstraintLayout父容器
<TextView android:textAppearance="?android:textAppearanceMedium" android:gravity="center" android:autoLink="web" android:id="@id/txtDefaultpassword" android:padding="40.0px" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/defaultpassword" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toBottomOf="parent" />
情况B:居底且内部文字居底
只需将android:gravity改为bottom|center_horizontal(或仅bottom),其余居底布局参数保持不变:
android:gravity="bottom|center_horizontal"
内容的提问来源于stack exchange,提问作者Anti Atlas Dev
相关产品推荐
相关产品推荐

