【问题标题】:How can I center a TextView on Android?如何在 Android 上将 TextView 居中?
【发布时间】:2015-11-12 02:20:07
【问题描述】:

我有一个简单的布局,只有一个EditText 和一个TextView

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

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

             <TextView
                android:id="@+id/lblName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="10dp"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="25sp"
                android:textStyle="bold" />

             <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textStyle="bold"
                android:textSize="15sp"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="10dp"
                android:id="@+id/txtName"/>
        </LinearLayout>

</LinearLayout>

我想将TextView 放在手机屏幕的中心。

我看到我可以将我的 LinearLayout 替换为 RelativeLayout 作为全局布局并将属性 android:gravity="center" 设置为居中,但我想要居中 TextView 和不是EditText,它也以这个函数为中心。

是否可以仅将TextView 居中而不将EditText 居中?

注意:当然,我不想用边距手动居中。

编辑:我希望 TextView 位于屏幕中心,而 EditText 位于 nextLine(屏幕左侧)。像这样的:

[                WIDHT OF THE SCREEN                ]
                 [TEXTVIEW-CENTER]
[EDITTEXT-LEFT]

提前致谢!

【问题讨论】:

  • 你有一张图片来准确地描述你想要的吗?您希望编辑文本在哪里?在文本视图的上方或下方或侧面?
  • 有人能解释一下为什么投反对票吗?
  • @Fareya 哦,对不起,现在我编辑了我的问题,但我不知道如何添加图像。谢谢指正!

标签: android android-layout


【解决方案1】:

尝试将您的内部 LinearLayout 更改为类似的内容。`

    <LinearLayout
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:orientation="vertical">

` 它将获取所有屏幕空间,然后显示 EditText。

如果您在内部 Linear_layout 中使用 wrap_content,则内部 Linear_layour 的宽度将根据其 textView 进行包装,即它将作为 textview 的父级,但作为其外部布局的子级。参考图片。

但是如果您将其属性更改为 fill_parent ,它将根据其父级填充宽度。 我希望你现在能理解它。

【讨论】:

  • 非常感谢!这正是我所需要的!但是......你能解释一下放在这里wrap_contentfill_parent之间的区别吗?为什么wrap_content 会显示在屏幕左侧?再次感谢!
  • 我很高兴听到它对您有所帮助。如果我正确回答了您的问题,请接受此作为答案。
  • fill=parent 表示填充父级,即具有 fill=parent 属性的布局将尝试填充其父级,但在 warp_content 的情况下,它将尝试扭曲其内容,即在您的情况下,您的 textview 大小为小它正试图扭曲它的布局。
  • 您能否在您的回答中加入一些详细的解释而不是评论?我真的不明白您在该评论中的意思,我不会有任何问题将其标记为已接受的答案。
  • 好答案。但只是一个观察。使用match_parent 而不是fill_parent,因为最后一个已弃用。
【解决方案2】:

改变

android:orientation="horizo​​ntal"

android:orientation="垂直"

添加

android:layout_gravity="center"

文本视图

【讨论】:

  • TextView 它仍然在屏幕的左侧。
  • 您是否将方向更改为垂直?
  • 是的,我改变了它,它也不起作用。我现在注意到我没有提出我的问题,即我有一个 LinearLayout 包装 EditTextTextView (我虽然我之前提出过)所以我要编辑我的问题。
  • 您的父级LinearLayout 的宽度为wrap_content,因此它将以适合子级所需的最小宽度居中。
【解决方案3】:

使用这个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/hello_world" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10" />

</LinearLayout>

【讨论】:

  • 我现在编辑了我的问题,因为我忘了提出我的问题,它被包裹在另一个 LinearLayout 中,但据此我认为它应该可以工作,但它只在屏幕左侧时间。
【解决方案4】:
<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">

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

        <TextView
            android:id="@+id/lblName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="25sp"
            android:textStyle="bold"
            android:text="Test"
            android:layout_gravity="center"/>

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textStyle="bold"
            android:textSize="15sp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="10dp"
            android:id="@+id/txtName"/>
    </LinearLayout>

</LinearLayout>

【讨论】:

    【解决方案5】:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
            <TextView
                android:id="@+id/lblName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="25sp"
                android:textStyle="bold"
                android:layout_gravity="center"
                android:text="Sample Text"/>
    
            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textStyle="bold"
                android:textSize="15sp"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="10dp"
                android:id="@+id/txtName"/>
    </LinearLayout>
    

    【讨论】:

      猜你喜欢
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      相关资源
      最近更新 更多