47

我有以下布局,我想让 textview 出现在视图的中心和中间。我怎样才能做到这一点?

在图形视图中查看布局时,我尝试调整各种重力属性,但似乎没有任何改变。我想要中心的文本视图,我已经完成但在视图的一半。

谢谢马特。

<?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"
    android:orientation="vertical"
    android:background="@drawable/carefreebgscaledalphajpg" >



    <TextView
        android:id="@+id/textviewdatefornocallspage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="You have no calls for "
        android:textSize="25sp" />

</LinearLayout>
4

13 回答 13

90

在您的 linearLayout 标签中将重力设置为中心:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
     android:gravity="center"
    android:background="@drawable/carefreebgscaledalphajpg" >

或使用RelativeLayout这样的:

<?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"
    android:background="@drawable/carefreebgscaledalphajpg" >



    <TextView
        android:id="@+id/textviewdatefornocallspage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="You have no calls for "
        android:textSize="25sp" />

</RelativeLayout>
于 2012-11-20T14:13:44.110 回答
11

尝试这个

很简单,我尝试了很多答案,但所有答案都不起作用......最后这种方法对我有用

                     <LinearLayout
                        android:layout_below="@+id/iv_divider"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:layout_marginTop="@dimen/_10dp">
                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:text="@string/mycredits"
                            android:textColor="@color/colorGray"
                            android:gravity="center"
                            android:textSize="@dimen/_25dp" />
                    </LinearLayout>
于 2017-03-15T07:49:01.267 回答
7

在线性布局中为 TextView设置 android:gravity="center"属性,并将文本视图的高度和宽度保持为wrap_content.

这个解决方案对我有用。

于 2016-06-09T06:47:19.030 回答
3
    <TextView
...
    android:layout_gravity="center"
....
/>
于 2012-11-20T14:15:25.170 回答
2

添加android:gravity="center_horizontal"到您的LinearLayout并将您的TextViewlayout_width更改为android:layout_width="wrap_content"

<?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"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:background="@drawable/carefreebgscaledalphajpg" >



    <TextView
        android:id="@+id/textviewdatefornocallspage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="You have no calls for "
        android:textSize="25sp" />

</LinearLayout>
于 2012-11-20T14:10:47.343 回答
2

将 textview 的宽度设置为wrap_content,并将 LinearLayout 设置为

android:gravity="center_horizontal"
于 2012-11-20T14:13:28.587 回答
2

其他答案都不适合我。我不得不使用android:textAlignment="center"

我的布局如下

<LinearLayout...
    <RelativeLayout...
        <RelativeLayout....
            <TextView
                android:layout_centerInParent="true"
                android:textAlignment="center"
于 2019-06-19T22:31:55.277 回答
1

如果在线性布局中您的方向垂直,则可以将 textview 放在“水平中心”中android:layout_gravity="center"。要使 textview 垂直居中,您需要将 textview 的 layout_height 设置为 match_parent 并将 android:gravity 设置为“center”。如果你想在这个布局中使用多个视图,你应该使用 RelativeLayout 和 set android:layout_centerInParent="true"

于 2012-11-20T14:17:16.300 回答
0

听起来你想要android:layout_gravityTextView

请参阅文档:developer.android.com

于 2012-11-20T14:14:07.073 回答
0

将你的 texteView 居中在 RelativeLayout :

<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".MainActivity">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    />

</RelativeLayout>
于 2022-01-02T07:09:49.933 回答
0

android:gravity="center"在您的线性布局中设置

于 2018-07-17T09:48:43.033 回答
0
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".view.fragments.FragmentAncRecords">

    <TextView
        android:id="@+id/tvNoDataFound"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fontFamily="@font/poppins_regular"
        android:visibility="visible"
        android:gravity="center"
        android:text="@string/no_record_available"
        />

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/rvAncRecords"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:visibility="gone"
        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />



</LinearLayout>
于 2021-11-17T12:25:01.230 回答
-1

使用相对布局,它总是提供更准确和灵活的布局

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

<ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:src="@drawable/ic_launcher" />
</RelativeLayout>
于 2012-11-20T14:22:27.743 回答