2233

如何在 a 中水平和垂直居中文本TextView,使其恰好出现在 in 的TextView中间Android

4

70 回答 70

3323

我假设您使用的是 XML 布局。

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"
    android:text="@string/**yourtextstring**"
/>

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

正如@stealthcopter 评论的那样,在 java:.setGravity(Gravity.CENTER);中。

对于 Kotlin 用户,.gravity = Gravity.CENTER

于 2009-01-11T01:53:17.393 回答
471
android:gravity="center" 

这会成功的

于 2010-02-08T22:54:29.500 回答
312

您还可以使用以下方法动态设置它:

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2009-11-21T12:25:56.413 回答
122
android:layout_centerInParent="true"

这在与布局的高度和宽度设置为 wrap_content 的 RelativeLayout 一起使用时有效。

于 2011-11-11T00:58:08.577 回答
87

您还可以使用以下组合:

android:gravity="left|center"

然后,如果 textview 宽度大于“fill_parent”,则文本仍将左对齐(不居中,因为重力仅设置为“center”)。

于 2013-01-01T20:11:10.153 回答
59

应用重力:

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

对于垂直:

txtView.setGravity(Gravity.CENTER_VERTICAL);

在 XML 中:

<TextView      
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center"
    android:text="@string/Hello_World"        
/>
于 2013-05-30T05:34:15.567 回答
44

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

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

<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_vertical|center_horizontal"
    android:text="Your Text"
/>

对于您的特定情况,重力值将是:

center_vertical|center_horizontal

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

于 2014-10-17T12:11:09.683 回答
41

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

例如,像这样:

<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center">        
    <TextView android:text="@string/chf" android:id="@+id/tv_chf" android:layout_weight="2" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center"></TextView>        
</TableRow>
于 2011-05-13T11:57:15.410 回答
39

您需要像这样设置TextView Gravity (Center Horizo​​ntal & Center Vertical):

android:layout_centerHorizontal="true"   

android:layout_centerVertical="true"

并动态使用:

textview.setGravity(Gravity.CENTER);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2012-05-15T05:03:02.320 回答
34

在我看来,

android:gravity="center"

比,

android:layout_centerInParent="true"

这比,

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

至少用于格式化文本。

于 2012-07-16T04:28:43.760 回答
32

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

<TextView  
    android:id="@+id/textView1"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_vertical|center_horizontal"
    android:text="Your Text goes here"
/>

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

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

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

<TextView  
    android:id="@+id/textView1"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_centerInParent="true"
    android:text="Your Text goes here"
/>

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

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);
于 2015-01-03T03:58:38.767 回答
25

在 XML 文件中使用。

布局文件

<TextView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:text="@string/stringtext"/>

或者:

在 Java 类中使用它

TextView textView =(TextView)findViewById(R.id.texviewid);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2013-10-04T17:18:18.487 回答
22

将此用于相对布局

android:layout_centerInParent="true"

和其他布局

android:gravity="center" 
于 2013-10-11T11:08:21.440 回答
20

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

对于相对布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center" 
        android:text="Hello World" />

</RelativeLayout>

对于线性布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Hello World" />

</LinearLayout>
于 2015-12-17T06:12:50.103 回答
17

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

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

不知道有什么区别,但它也有效。但是仅适用于 API 级别 17 或更高级别。

于 2013-08-24T20:50:50.877 回答
14

RelativeLayout,它会很好。

还有另一个Button和其他任何你可以添加的东西。

以下对我很有效。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ff314859"
    android:paddingLeft="16dp"
    android:paddingRight="16dp">
    <TextView 
        android:id="@+id/txt_logo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="your text here"
        android:textSize="30dp"
        android:gravity="center"/>

        ...other button or anything else...

</RelativeLayout>
于 2012-11-21T03:15:44.947 回答
12

采用android:textAlignment="center"

       <TextView
        android:text="HOW WAS\nYOUR\nDAY?"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAlignment="center"
        android:id="@+id/textView5"
         />
于 2019-06-05T01:09:33.913 回答
11

您可以将gravity您的 textview 设置为CENTER.

于 2013-04-02T03:34:18.213 回答
11

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

textview.setGravity(Gravity.CENTER)
于 2015-12-15T12:38:02.590 回答
10

如果您尝试在 TableLayout 中的 TableRow 上将文本居中,这是我实现此目的的方法:

<TableRow android:id="@+id/rowName"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:padding="5dip" >
    <TextView android:id="@+id/lblSomeLabel"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:gravity="center"
              android:layout_width="0dp"
              android:layout_weight="100"
              android:text="Your Text Here" />
</TableRow>
于 2012-07-15T02:14:08.470 回答
10

如果您使用的是相对布局:

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/stringname"
    android:layout_centerInParent="true"/>

如果您使用的是线性布局

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/stringname"
    android:layout_gravity="center"/>
于 2015-11-15T06:33:26.730 回答
10

试试这个方法,它会工作

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center">
  
        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAlignment="center"/>

</LinearLayout>
于 2016-06-17T18:29:16.087 回答
10

TextView 重力根据您的父布局工作。

线性布局

如果你使用 LinearLayout 那么你会发现两个重力属性 android:gravity & android:layout_gravity

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

在此处输入图像描述

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="300dp"
    android:background="@android:color/background_light"
    android:layout_height="300dp">

    <TextView
        android:layout_width="match_parent"
        android:text="Hello World!"
        android:gravity="center_horizontal"
        android:layout_gravity="center_vertical"
        android:layout_height="wrap_content"
    />
</LinearLayout>

相对布局

使用 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 在父视图的垂直中心。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="300dp"
    android:background="@android:color/background_light"
    android:layout_height="300dp">

    <TextView
        android:layout_width="match_parent"
        android:text="Hello World!"
        android:gravity="center"
        android:layout_centerInParent="true"
        android:layout_height="wrap_content"
    />
</RelativeLayout>
于 2017-09-20T12:08:17.110 回答
9

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

<TextView
    android:id="@+id/txtSubject"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/subject"
    android:layout_margin="10dp"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearanceLarge" />
于 2013-06-03T09:54:20.793 回答
9

实际上,我们可以通过排除 fontPadding 做得更好。

<TextView
  android layout_height="wrap_content"
  android layout_height="wrap_content"
  android:includeFontPadding="false"
  android:textAlignment="center"
/>
于 2020-02-13T07:30:48.603 回答
8

正如许多答案所暗示的那样,上述工作正常。

android:gravity="center"

如果你想把它垂直居中:

android:gravity="center_vertical"

或只是水平:

android:gravity="center_horizontal"
于 2013-07-04T20:09:04.710 回答
8

TextView 的高度和宽度是换行内容,然后 textview 中的文本始终居中,然后使用以下方法在其父布局中居中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Hello.."/>
</RelativeLayout>

对于 LinearLayout,代码也相同:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello.."/>
</LinearLayout>

并且从编程上讲,父级是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);
于 2016-03-07T13:42:51.297 回答
7

简单地说,在您的 XML 文件中,将 textview 重力设置为中心:

<TextView
    android:gravity="center" />
于 2013-05-06T17:56:27.130 回答
7

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

<TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center" />
于 2017-06-30T09:27:32.913 回答
7

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

XML方法01

<TextView  
    android:id="@+id/textView"
    android:layout_height="match_parent"
    android:layout_width="wrap_content" 
    android:gravity="center_vertical|center_horizontal"
    android:text="@strings/text"
/>

XML方法02

<TextView  
    android:id="@+id/textView"
    android:layout_height="match_parent"
    android:layout_width="wrap_content" 
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="@strings/text"
/>

XML方法03

<TextView  
    android:id="@+id/textView"
    android:layout_height="match_parent"
    android:layout_width="wrap_content" 
    android:gravity="center"
    android:text="@strings/text"
/>

XML方法04

<TextView  
    android:id="@+id/textView"
    android:layout_height="match_parent"
    android:layout_width="wrap_content" 
    android:layout_centerInParent="true"
    android:text="@strings/text"
/>

Java方法01

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

Java方法02

textview.setGravity(Gravity.CENTER);

Java方法03

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
于 2018-02-10T16:05:45.207 回答
4

android:gravity="center_horizontal"用于水平对齐文本中心。 android:gravity="center_vertical"用于垂直对齐文本中心。 android:gravity="center"用于垂直和水平对齐文本中心。

<TextView
        android:layout_width="match_parent"
        android:gravity="center_horizontal|center_vertical"
        android:layout_height="match_parent" />
于 2016-05-20T10:18:11.030 回答
4

中心文本

<LinearLayout
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:gravity="center"
        android:layout_height="wrap_content">
    <TextView
            android:id="@+id/failresults"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:gravity="center_vertical|center_horizontal"
            android:text=""
            android:textSize="12sp" />
</LinearLayout>

如果你在linearlayout中有textview,你需要将它们都设置为中心

于 2016-09-04T19:33:07.180 回答
4

我不认为,您真的需要这样做,只需像这样在布局文件中定义您的 TextView

<RelativeLayout
    android:layout_width="width"
    android:layout_height="height">
    <TextView
        android:id="@+id/yourid"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Your text" />
</RelativeLayout>
于 2017-01-23T12:09:05.647 回答
3

将布局文件中的重力属性设置为 android:gravity="center"

于 2016-08-17T22:29:19.987 回答
3
 <android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">


       <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="HELLO"
            android:textColor="@color/colorPrimaryDark"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"/>

 </android.support.constraint.ConstraintLayout>
于 2019-03-25T12:02:25.037 回答
3

如果您让文本视图的宽度和高度来包装内容,那么您必须根据父支持的属性通过布局重力来管理它的位置。否则你可以做。

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"/> 
于 2019-04-01T07:12:34.567 回答
2
<TextView
android:id="+@id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
/>
于 2014-02-19T12:55:49.940 回答
2

你试过这种方法吗?

<TextView
android:id="+@id/txtVw"
android:gravity="center"
/>
于 2014-03-13T12:57:54.423 回答
2

在对我有用的xml中使用下面的代码你可以改变它在中心的方向

<LinearLayout
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:background="@color/colorPrimaryDark"
        android:gravity="center"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/id_text"
            android:layout_width="wrap_content"
            android:textSize="18sp"
            android:textColor="@android:color/white"
            android:textStyle="normal"
            android:layout_height="wrap_content"
            android:text="centre me"/>
    </LinearLayout>
于 2016-12-07T10:26:56.043 回答
2

用于android:gravity="center"解决您的问题。

于 2017-03-22T08:09:33.683 回答
2
<TextView  
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="center"
android:text="In the center"/>

以上是使用 .xml 文件进行设置。

但我更喜欢 java 版本,因为如果需要,您也可以在运行状态下在代码中禁用它。以下是java代码。

textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2018-04-22T04:41:58.483 回答
2

对于科特林

如果您想将您TextView的代码居中:

textView.gravity = Gravity.CENTER

如果你想horizontally居中:

textView.gravity = Gravity.CENTER_HORIZONTAL

或者,vertically中心:

textView.gravity = Gravity.CENTER_VERTICAL
于 2020-08-17T08:49:26.877 回答
2
android:textAlignment="center"

这会成功的

于 2021-10-09T04:35:40.417 回答
1

如果您正在使用RelativeLayout,请尝试在TextView标签中使用此属性:

android:layout_centerInParent= true
于 2017-03-05T15:21:19.873 回答
1

试试这个 :

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"
/>
于 2017-09-20T03:34:29.733 回答
1

我添加了 xml 片段以使文本视图中心在线性和相对布局中对齐。

在线性布局中

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text In Center"
android:layout_gravity="center"
android:gravity="center"/>

在相对布局中

<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Text In Center"
android:layout_centerInParent= true/>
于 2017-12-03T18:05:48.773 回答
1

让我们在屏幕上说全文视图

 <TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="Hello World!"
    android:gravity="center"
    />

假设相对布局中的 Textview(未满)

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:layout_centerInParent=true
    />

假设Linear_layout中的Textview(未满)

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:layout_gravity="centre"
    />
于 2018-02-05T10:43:31.440 回答
1

通过 。xml文件重力可以设置为中心,如下所示

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"
    android:text="In the center"
/>

通过 java 以下是您可以解决特定问题的方法

textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2018-03-03T19:33:56.927 回答
1

您可以将重力设置为垂直居中,将文本对齐设置为居中。

<TextView
     android:text="@string/yourText"
     android layout_height="wrap_content"
     android layout_height="wrap_content"
     android:gravity="center_vertical"
     android:textAlignment="center" />
于 2018-06-13T05:50:03.130 回答
1

您必须像这样设置重力:

(textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2019-02-07T04:24:52.833 回答
1

试试这个:

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center" />
于 2019-02-16T05:08:04.580 回答
1

试试这个:

如果您使用的是textview 高度和宽度 match_parent,则使用 LinearLayout 如果您使用的是 textview 高度和宽度 wrap_content,则可以将重力文本设置为居中,将文本对齐设置为水平居中,然后在 LinearLayout 中添加重力中心属性。

XML 代码

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textAlignment="center"
    android:gravity="center"
    android:textColor="#000"
    android:textSize="30sp"
    android:text="Welcome to Android" />
    </LinearLayout>

Java 代码

您可以以编程方式执行以下操作:-

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

谢谢

于 2019-03-26T05:44:45.360 回答
1

迟来的 GUI 荣誉奖

我想为这个已经很棒的线程增加一些价值。终于在 11 年后,我们现在有了一种从工具箱中拖放 TextView 并通过 GUI 属性框选择重力的方法。并且,谢天谢地,GUI 将属性简洁地组合为“center_vertical|center_horizo​​ntal”。

在此处输入图像描述

    <TextView
    android:text="This is my sample text."
    android:layout_width="match_parent"
    android:layout_height="35.7dp"
    android:id="@+id/textView2"
    android:layout_marginBottom="24.7dp"
    android:typeface="sans"
    android:textSize="20"
    android:gravity="center_vertical|center_horizontal" />
于 2020-08-26T16:30:46.680 回答
1

重新排列布局、图像或文本视图的位置属于对齐主题。所以如果你想把你的图像 src 垂直放在中间,你应该使用下面编写的代码

android:layout_centerVertical="true"

和水平居中

android:layout_centerHorizontal="true"

否则,我认为我们也可以使用重力将每个元素放在父布局的中间,例如android:gravity="center"

于 2021-11-07T03:35:09.543 回答
0
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:textStyle="bold"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Tours"
        android:id="@+id/textView" />
于 2016-07-20T06:27:42.590 回答
0

对于那些想知道如何在其 TextView 元素中垂直居中同时将其保持在左侧(水平)的人:

android:gravity="center"
android:textAlignment="viewStart"
于 2016-08-17T21:46:28.003 回答
0
There are 2 ways to do this :

1. From Xml
     use :  
        <TextView
         .........
        android:gravity="center"/>

2. From Java class
    use : 

     [textview].setGravity(Gravity.CENTER);
于 2016-10-06T11:08:14.203 回答
0

您可以使用 android:gravity="center" 将文本视图居中

代码如下

    <TextView
     android:text="@string/yourText"
     android layout_height="wrap_content"
     android layout_height="wrap_content"
     android:gravity="center" />
于 2017-11-13T10:42:48.517 回答
0

如果该 TextView 没有将高度/宽度属性设置为wrap_content,只需使用android:gravity="center". 但是有些人抱怨使用它不起作用。那是因为它们的布局没有相同的重力。你可以设置

android:layout_gravity="center" 在 TEXTVIEW 中(这仅适用于 TextView)

或者

android:gravity="center" 在父布局中(这将适用于其中的所有视图)

于 2017-11-27T19:04:44.123 回答
0

在任何视图的 ConstraintLayout 中:

(当您使用约束布局时,将高度和宽度设置为 0,并让约束来管理视图边界。)

<View
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
于 2017-12-14T16:58:03.610 回答
0

如何水平和垂直居中视图或其内容,例如 TextView 或 Button?layout_gravity 可用于将视图定位在其父视图的中心。而重力属性用于定位视图的内容,例如“文本”在视图的中心。

(1) 水平居中 TextView

在此处输入图像描述

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
       android:orientation="vertical"
       android:layout_margin="10dp"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:layout_gravity="center"
        android:background="#333"
        android:textColor="#fff"
        />

</LinearLayout>

( 2 ) TextView 垂直居中

android:layout_gravity=”center_vertical” 不起作用!!

要使 TextView 垂直居中,您需要使用技巧。将 TextView 放在 RelativeLayout 中,然后设置 TextView 属性 android:layout_centerInParent=”true” 在此处输入图像描述

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
       android:orientation="vertical"
       android:layout_margin="10dp"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:layout_centerInParent="true"
        android:layout_gravity="center_vertical"
        android:gravity="center"
        android:background="#333"
        android:textColor="#fff"
        />

</RelativeLayout>

( 3 ) 水平居中文本

机器人:重力=“center_horizo​​ntal”

在此处输入图像描述

( 4 ) 水平和垂直居中文本

android:gravity=”center” 这将使文本水平和垂直居中

在此处输入图像描述

<TextView
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:text="Hello World!"
    android:gravity="center"
    android:background="#333"
    android:textColor="#fff"
    />
于 2017-12-18T07:06:38.897 回答
0

在 TextView 中使用 Gravity 属性将文本垂直和水平居中。

android:gravity="center"
于 2018-03-20T15:10:48.483 回答
0

使用 android:gravity="center" 到父级

<LinearLayout
    android:layout_width="200dp"
    android:layout_height="200dp"

    android:gravity="center"
    >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Hello world"
        />
</LinearLayout>
于 2018-05-08T09:25:07.657 回答
0

这是解决方案。

<TextView  
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:gravity="center"
       android:text="**Your String Value**" />
于 2018-05-25T08:12:00.907 回答
0

您可以android:gravity为此进行更改。

android:gravity="center"或者

如果你想水平或垂直居中

android:gravity="center_horizontal"

android:gravity="center_vertical"

于 2018-11-05T11:12:31.290 回答
0

您可以通过以下方式在 java 中以编程方式执行此操作: textview.setGravity(Gravity.CENTER);

于 2018-12-14T16:56:49.103 回答
0
android:gravity="center" 

xml 中的这一行将帮助您将TextView.

于 2018-12-29T13:35:57.967 回答
0

Textview 的宽度和高度应该是 match_parent 并在你的 textview 属性中添加 android:gravity="center" 。

于 2019-04-27T07:06:31.147 回答
0

如果您的 XML 文件中只有一个 TextView,那么您可以将父视图重力作为中心。这将使您的子元素位于屏幕的中心,然后您可以将您的子视图作为高度和宽度的包装。

于 2019-05-10T19:13:24.987 回答
0

对于文本的布局,最好使用

安卓:文本对齐=“中心”

对于对象的其他布局等,很好用

机器人:重力=“中心”

于 2022-02-03T12:38:30.250 回答