当前位置:  开发笔记 > 编程语言 > 正文

如何在TextView中水平和垂直居中文本?

如何解决《如何在TextView中水平和垂直居中文本?》经验,为你挑选了28个好方法。

如何水平和垂直居中文本的TextView,所以,它正好出现在中间TextViewAndroid



1> 小智..:

我假设你正在使用XML布局.


您也可以使用重力center_verticalcenter_horizontal根据您的需要.

并且正如@stealthcopter在java中评论过: .setGravity(Gravity.CENTER);


@Rob,如果宽度和高度是wrap_content,那么从技术上讲,文本已经居中.
当与RelativeLayout一起使用时,这不起作用,其中布局的高度和宽度设置为wrap_content
不要与`android:layout_gravity ="center"`混淆,它会做其他事情.
这对我不起作用(`android:gravity ="center"`).它仍然显示在屏幕的最左侧.:(
如果我想将TextView相对于另一个视图对齐,但它的文本本身居中?
别忘了,还有`center_veritcal`和`center_horizo​​ntal`.
关键是android:layout_height =“ match_parent”和android:gravity =“ center”。如果height为“ wrap_content”,它将不起作用。

2> 小智..:
android:gravity="center" 

这样就可以了


textview必须是match_parent或fill_parent才能工作.如果它的包装内容,那么它将不会居中.
@KalelWade:使用wrap_content在文本视图中居中文本完全没有意义.也许您正在考虑在父视图中居中文本视图,在这种情况下,您可以将此行简单地放在父视图中.

3> 小智..:

您还可以使用以下命令动态设置它:

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);


或者只是textview.setGravity(Gravity.CENTER);
@Kenju如果您希望它可以轻松编辑,并且在运行时期间值不会改变:XML.如果必须实时更改值(例如,在用户按下按钮时更改对齐),则只能通过Java执行此操作.
@GustavoMaciel所以,基本上是xml,除非它需要动态修改......现在我明白了.感谢您的简单而有用的答案!

4> 小智..:
android:layout_centerInParent="true"

当与RelativeLayout一起使用时,这适用于布局的高度和宽度设置为wrap_content.


这使TextView居中,而不是文本.
当`TextView`中有自动换行时,这不起作用.文本将是`TextView`中的全宽和多行AND左对齐.它将在显示屏上显示为左对齐.您应该使用其他答案中指定的"重力".

5> Szorstki..:

您也可以使用组合:

android:gravity="left|center"

然后,如果textview宽度大于"fill_parent",则文本仍然会对齐到左边(不是居中,重力设置只是"center").



6> Gaganpreet S..:

应用重力:

TextView txtView = (TextView) findViewById(R.id.txtView);
txtView.setGravity(Gravity.CENTER_HORIZONTAL);

对于垂直:

txtView.setGravity(Gravity.CENTER_VERTICAL);

在XML中:




7> Cristiano Gu..:

有两种方法可以做到这一点.

XML代码中的第一个.您需要注意Gravity属性.您还可以在图形编辑器中找到此属性; 它可能比XML EDITOR更容易.


对于您的特定场景,重力值将是:

center_vertical|center_horizontal

在图形编辑器中,您将找到所有可能的值,甚至可以查看其结果.



8> Maverick1st..:

如果您正在使用TableLayout,请确保将TableRows的重力设置为居中.否则它将无法工作.在我将TableRow的重力设置为中心之前,至少它不适用于我.

例如,像这样:

        
            



9> NagarjunaRed..:

您需要设置TextView Gravity(中心水平和中心垂直),如下所示:

android:layout_centerHorizontal="true"   

android:layout_centerVertical="true"

并动态使用:

textview.setGravity(Gravity.CENTER);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);


layout_ *告诉View的父对象要放置的位置。如果不使用layout_ *,则会告诉View如何放置其组件

10> 小智..:

在我看来,

android:gravity="center"

比...更好

android:layout_centerInParent="true"

哪个好,

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"

至少用于格式化文本.



11> Karthikeyan..:

对于线性布局:在XML中使用类似的东西


要在运行时执行此操作,请在您的活动中使用此类内容

TextView textView1 =(TextView)findViewById(R.id.texView1);
textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

对于相对布局:在XML中使用这样的东西


要在运行时执行此操作,请在您的活动中使用此类内容

TextView textView1 =(TextView)findViewById(R.id.texView1);
RelativeLayout.LayoutParams layoutParams = RelativeLayout.LayoutParams)textView1.getLayoutParams();
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
textView1.setLayoutParams(layoutParams);



12> venu..:

在XML文件中使用.

布局文件


要么:

在Java类中使用它

TextView textView =(TextView)findViewById(R.id.texviewid);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);



13> 小智..:

用于相对布局

android:layout_centerInParent="true"

以及其他布局

android:gravity="center" 



14> Avijit Karma..:

如果TextView's高度和宽度是总是居中wrap content的文本TextView.但如果TextView's宽度是match_parent和高度是match_parent,wrap_content那么你必须写下面的代码:

对于RelativeLayout:




    


对于LinearLayout:




    




15> noob..:

使用重力适用于TextView时,在API级别17中实现了另一种方法 -

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

不知道差异,但它也有效.但仅适用于API级别17或更高级别.



16> Yuda Prawira..:

RelativeLayout,它会很好.

还有另外一个Button你可以添加的东西.

以下适用于我.


    

        ...other button or anything else...




17> 小智..:

您可以gravity将文本视图设置为CENTER.



18> user1..:

最简单的方法(令人惊讶的是,仅在评论中提到,因此我发布的答案)是:

textview.setGravity(Gravity.CENTER)



19> dyslexicanab..:

如果您尝试将文本放在TableLay中的TableRow中心,以下是我实现此目的的方法:


    



20> Md. Naushad ..:

这是我在我的应用程序中使用的答案.它在屏幕中央显示文本.




21> Niranjan..:

如果您使用相对布局:

  

如果您使用的是LinearLayout




22> rgamber..:

正如上面提到的许多答案都可以.

android:gravity="center"

如果你想垂直居中:

android:gravity="center_vertical"

或只是横向:

android:gravity="center_horizontal"



23> 小智..:

只需在XML文件中,将textview gravity设置为center:




24> Attif..:

TextView的高度和宽度是包装内容,然后textview中的文本始终居中,然后使用以下内容在其父布局中设置中心:



    

对于LinearLayout,代码也是一样的:



    

和pro-grammatically parent是RelativeLayout java代码,这在运行时在你的活动中使用这样的东西

TextView textView1 =(TextView)findViewById(R.id.texView1);
RelativeLayout.LayoutParams layoutParams = RelativeLayout.LayoutParams)textView1.getLayoutParams();
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
textView1.setLayoutParams(layoutParams);



25> Kamlakar Kat..:

您可以这样做以使文本居中




26> Alpesh Sorat..:

TextView重力按照您的父级布局工作。

LinearLayout

如果您使用LinearLayout,则会发现两个重力属性android:gravity和android:layout_gravity

android:gravity:表示TextView内部文本的布局部分,而android:layout_gravity:表示TextView在父视图中的位置。

如果您想将文本水平和垂直居中设置,请使用以下代码



    

RelativeLayout

使用RelativeLayout,您可以在TextView中使用以下属性

android:gravity =“ center”表示TextView中的文本中心。

android:gravity =“ center_horizo​​ntal”内部文本(如果要水平居中)。

android:gravity =“ center_vertical”内部文本(如果要垂直居中)。

android:layout_centerInParent =“ true”,如果您希望TextView位于父视图的中心位置。android:layout_centerHorizo​​ntal =“ true”,如果您希望TextView位于父视图的水平中心。android:layout_centerVertical =“ true”,如果您希望TextView位于父视图的垂直中心。



    



27> ArghadipDasC..:

我们可以通过以下多种方式实现这一目标: -

XML方法01


XML方法02


XML方法03


XML方法04


Java方法01

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

Java方法02

textview.setGravity(Gravity.CENTER);

Java方法03

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);



28> Chathura Wij..:

使用 android:textAlignment="center"

       

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有