如何在 Android 上将 TextView 居中?
Posted
技术标签:
【中文标题】如何在 Android 上将 TextView 居中?【英文标题】:How can I center a TextView on Android? 【发布时间】:2015-11-12 02:20:07 【问题描述】:我有一个简单的布局,只有一个EditText
和一个TextView
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<TextView
android:id="@+id/lblName"
android:layout_
android:layout_
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="25sp"
android:textStyle="bold" />
<EditText
android:layout_
android:layout_
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 哦,对不起,现在我编辑了我的问题,但我不知道如何添加图像。谢谢指正! 【参考方案1】:尝试将您的内部 LinearLayout 更改为类似的内容。`
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
` 它将获取所有屏幕空间,然后显示 EditText。
如果您在内部 Linear_layout 中使用 wrap_content,则内部 Linear_layour 的宽度将根据其 textView 进行包装,即它将作为 textview 的父级,但作为其外部布局的子级。参考图片。
但是如果您将其属性更改为 fill_parent ,它将根据其父级填充宽度。 我希望你现在能理解它。
【讨论】:
非常感谢!这正是我所需要的!但是......你能解释一下放在这里wrap_content
和fill_parent
之间的区别吗?为什么wrap_content
会显示在屏幕左侧?再次感谢!
我很高兴听到它对您有所帮助。如果我正确回答了您的问题,请接受此作为答案。
fill=parent 表示填充父级,即具有 fill=parent 属性的布局将尝试填充其父级,但在 warp_content 的情况下,它将尝试扭曲其内容,即在您的情况下,您的 textview 大小为小它正试图扭曲它的布局。
您能否在您的回答中加入一些详细的解释而不是评论?我真的不明白您在该评论中的意思,我不会有任何问题将其标记为已接受的答案。
好答案。但只是一个观察。使用match_parent
而不是fill_parent
,因为最后一个已弃用。【参考方案2】:
改变
android:orientation="horizontal"
到
android:orientation="垂直"
添加
android:layout_gravity="center"
在
文本视图
【讨论】:
TextView
它仍然在屏幕的左侧。
您是否将方向更改为垂直?
是的,我改变了它,它也不起作用。我现在注意到我没有提出我的问题,即我有一个 LinearLayout
包装 EditText
和 TextView
(我虽然我之前提出过)所以我要编辑我的问题。
您的父级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_
android:layout_
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_
android:layout_
android:layout_gravity="center"
android:text="@string/hello_world" />
<EditText
android:id="@+id/editText1"
android:layout_
android:layout_
android:ems="10" />
</LinearLayout>
【讨论】:
我现在编辑了我的问题,因为我忘了提出我的问题,它被包裹在另一个LinearLayout
中,但据此我认为它应该可以工作,但它只在屏幕左侧时间。【参考方案4】:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical"
android:gravity="center">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical"
android:gravity="center_vertical">
<TextView
android:id="@+id/lblName"
android:layout_
android:layout_
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_
android:layout_
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_
android:layout_>
<TextView
android:id="@+id/lblName"
android:layout_
android:layout_
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="25sp"
android:textStyle="bold"
android:layout_gravity="center"
android:text="Sample Text"/>
<EditText
android:layout_
android:layout_
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"
android:textSize="15sp"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:id="@+id/txtName"/>
</LinearLayout>
【讨论】:
以上是关于如何在 Android 上将 TextView 居中?的主要内容,如果未能解决你的问题,请参考以下文章
iOS UITextView文本怎样居上显示而不是默认的居中?
如何在android上将kotlin转换为java? [复制]