gravity与layout_gravity的使用场景 设置TextView文字居中

本文探讨了解决TextView在LinearLayout中文字水平居中显示的问题,对比了使用android:layout_gravity与android:gravity的不同效果,并提供了两种设置方法来实现文字居中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做一个功能,要将文字水平居中,本来是想这样做的:

textView 的width设置为wrap_content,然后再将其设置成layout_gravity=center_horizonal

但在我遇到的这个场景中,将width设置成wrap_content后就会出现一些导致其它控件出现问题:就是在一个linearLayout里面,其他所有控件宽度为fill_parent,

当有一个控件的宽度设置成wrap_content后,所有的控件的宽度都会成为与设置成wrap_content控件一样宽。

于是,这个方案行不通了。

不得不将textView的width设置成fill_parent,这样的话,就得将文字在控件内部居中。这样怎么弄呢?搜得如下结果:


设置TextView文字居中

有2种方法可以设置TextView文字居中:

一:在xml文件设置:android:gravity="center"

二:在程序中设置:m_TxtTitle.setGravity(Gravity.CENTER);

备注:android:gravity和android:layout_gravity的区别在于前者对控件内部操作,后者是对整个控件操作。

例如:android:gravity="center"是对textView中文字居中

android:layout_gravity="center"是对textview控件在整个布局中居中

其实很容易理解,出现"layout"就是控件对整个布局的操作

一:在xml文件设置:android:gravity="center"

二:在程序中设置:m_TxtTitle.setGravity(Gravity.CENTER);

备注:android:gravity和android:layout_gravity的区别在于前者对控件内部操作,后者是对整个控件操作。

例如:android:gravity="center"是对textView中文字居中

android:layout_gravity="center"是对textview控件在整个布局中居中

其实很容易理解,出现"layout"就是控件对整个布局的操作

Android布局设计中,`gravity` 和 `layout_gravity` 都是用于控制组件在容器内的对齐方式,但它们的作用范围和用法略有不同。 1. **gravity**: 这个属性通常应用在视图(如LinearLayout、RelativeLayout等)上,它决定了视图内部元素的位置,比如文字、图片等内容的对齐方式。`gravity` 可以指定组件相对于其父容器的方向,包括垂直方向上的 `top`, `bottom`, `center_vertical` 和水平方向上的 `left`, `right`, `center_horizontal` 等。此外还有 `center`, `start`, `end` 和 `fill_horizontal`、`fill_vertical` 等组合值。 2. **layout_gravity**: 而 `layout_gravity` 主要是用于规则视图(如LinearLayout或FrameLayout)或 FrameLayout 子项的,它是从 `gravity` 派生而来的,主要用于设置子视图在整个容器中的位置。对于非根视图(即不是屏幕本身),`layout_gravity` 更常用于指定视图如何在其父容器中居中或者沿着某个轴线对齐。 举个例子,如果你有个LinearLayout作为父容器,里面有TextView,你可能会这样做: ```xml <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" /> ``` 或者 ```xml <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> </LinearLayout> ``` 在这里,`gravity` 会作用于TextView的内容,使其居中;而 `layout_gravity` 则会让LinearLayout整体在父容器中居中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值