【问题标题】:How to center a textview inside a linearlayout如何在线性布局中居中文本视图
【发布时间】:2012-11-08 15:00:16
【问题描述】:

我有以下布局,我想让 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>

【问题讨论】:

    标签: android view android-linearlayout


    【解决方案1】:

    在你的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>
    

    【讨论】:

    • RelativeLayout 解决方案对我有用,但在 TextView 中我必须使用 wrap_content 来表示宽度和高度
    • @Jose_GD :在这两种情况下它都适合你:)。如果使用属性 match_parent 作为宽度,只需添加 layout_gravity="center" 。就是这样;)
    • 即使在添加layout_gravity="center" 之后将宽度设置为match_parent 对我也不起作用
    • 这是‘android:gravity’而不是 layout_gravity。高度也应该是 match_parent。
    【解决方案2】:

    试试这个

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

                         <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>
    

    【讨论】:

    • 这应该是答案
    【解决方案3】:

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

    这个解决方案对我有用。

    【讨论】:

      【解决方案4】:
          <TextView
      ...
          android:layout_gravity="center"
      ....
      />
      

      【讨论】:

        【解决方案5】:

        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>
        

        【讨论】:

          【解决方案6】:

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

          我的布局如下

          <LinearLayout...
              <RelativeLayout...
                  <RelativeLayout....
                      <TextView
                          android:layout_centerInParent="true"
                          android:textAlignment="center"
          

          【讨论】:

            【解决方案7】:

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

            android:gravity="center_horizontal"
            

            【讨论】:

              【解决方案8】:

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

              【讨论】:

              • 谢谢,这里通过将身高和体重都设置为中心来工作
              【解决方案9】:

              听起来你想要 android:layout_gravity 用于 TextView

              参见文档:developer.android.com

              【讨论】:

                【解决方案10】:

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

                【讨论】:

                  【解决方案11】:
                  <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>
                  

                  【讨论】:

                  • 你能edit 准确回答这个问题吗?
                  【解决方案12】:

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

                  <?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>
                  

                  【讨论】:

                    猜你喜欢
                    • 2019-03-03
                    • 1970-01-01
                    • 2012-12-17
                    • 2017-09-30
                    • 1970-01-01
                    • 1970-01-01
                    • 2013-07-08
                    • 2020-07-27
                    相关资源
                    最近更新 更多