草庐IT

如何在 TextView 中水平和垂直居中文本?

HuntsBot 2023-04-09 原文

问:

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

答1:

HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com

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



您还可以根据需要使用重力 center_vertical 或 center_horizontal。

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

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

当与布局的高度和宽度设置为 wrap_content 的 RelativeLayout 一起使用时,这不起作用

@Rob,如果宽度和高度是 wrap_content,那么从技术上讲,文本已经居中。

如果我想将 TextView 相对于另一个视图对齐,但它的文本本身是居中的?

这对我不起作用 (android:gravity="center")。它仍然显示在屏幕的最左侧。 :(

不要与 android:layout_gravity="center" 混淆,它会做其他事情。

答2:

打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!

android:gravity="center" 

这会成功的

textview 必须是 match_parent 或 fill_parent 才能工作。如果它的包装内容,那么它不会居中。

@KalelWade:使用 wrap_content 在文本视图中居中文本根本没有意义。也许您正在考虑在父视图中将文本视图居中,在这种情况下,您只需将此行放在父视图中。

@Mooing Duck 因此,不使用包装内容的原因 - 它没有意义。但是当你要么应对和粘贴或只是匆忙时,你可能不会把两个和两个放在一起。这就是我提到它的原因。

如果宽度和高度等于“wrap_content”的TextView在宽度和高度“match_parent”的LinearLayout中,那么您需要设置Linear_layout的layout_gravity。

@MooingDuck,当高度为“wrap_content”且重力为“center_vertical”时,它以设计(预览)为中心绘制,但在设备中它位于顶部。因此,将高度设为“match_parent”并将重力设置为“center_vertical”或“center”。

答3:

huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。

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

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

或者只是 textview.setGravity(Gravity.CENTER);

选择哪种方式,写xml还是写Java文件的判断标准是什么?

@Kenju,如果您希望它易于编辑并且值在运行时不会更改:XML。如果您必须实时更改值(例如,在用户按下按钮时更改对齐方式),那么您只能通过 Java 来完成。

@GustavoMaciel 所以,基本上是xml,除非它需要动态修改......现在我明白了。感谢您的简单而有用的回答!

答4:

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!

android:layout_centerInParent="true"

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

这使 TextView 居中,而不是其中的文本。

当 TextView 中有自动换行时,这不起作用。文本将在 TextView 内为全角、多行和左对齐。它将在显示屏上显示为左对齐。您应该使用其他答案中指定的“重力”。

答5:

huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。

您还可以使用以下组合:

android:gravity="left|center"

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

答6:

huntsbot.com全球7大洲远程工作机会,探索不一样的工作方式

应用重力:

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

对于垂直:

txtView.setGravity(Gravity.CENTER_VERTICAL);

在 XML 中:



答7:

HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com

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

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



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

center_vertical|center_horizontal

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

答8:

huntsbot.com – 高效赚钱,自由工作

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

例如,像这样:

        
            


有趣的。还必须检查这是否对 LinearLayout (TableRow 父级)有效。

答9:

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!

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

android:layout_centerHorizontal="true"   

android:layout_centerVertical="true"

并动态使用:

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

代码语义是错误的。将 layout_centerhorizontal 和 layout_centervertical 替换为 layout_centerHorizontal 和 layout_centerVertical(“H”和“V”为大写,否则将不起作用)。

layout_* 告诉 View 的父级它想要在哪里。没有 layout_* 告诉 View 如何放置它的组件

答10:

与HuntsBot一起,探索全球自由职业机会–huntsbot.com

在我看来,

android:gravity="center"

比,

android:layout_centerInParent="true"

这比,

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

至少用于格式化文本。

答11:

保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com

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



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

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

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



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

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

原文链接:https://www.huntsbot.com/qa/oDBW/how-do-i-center-text-horizontally-and-vertically-in-a-textview?lang=zh_CN&from=csdn

HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com

有关如何在 TextView 中水平和垂直居中文本?的更多相关文章

  1. ruby - 如何在 Ruby 中顺序创建 PI - 2

    出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits

  2. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  3. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  4. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  5. ruby-on-rails - 如何在 ruby​​ 中使用两个参数异步运行 exe? - 2

    exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby​​中使用两个参数异步运行exe吗?我已经尝试过ruby​​命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何ruby​​gems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除

  6. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  7. ruby - 如何在 Ruby 中拆分参数字符串 Bash 样式? - 2

    我正在为一个项目制作一个简单的shell,我希望像在Bash中一样解析参数字符串。foobar"helloworld"fooz应该变成:["foo","bar","helloworld","fooz"]等等。到目前为止,我一直在使用CSV::parse_line,将列分隔符设置为""和.compact输出。问题是我现在必须选择是要支持单引号还是双引号。CSV不支持超过一个分隔符。Python有一个名为shlex的模块:>>>shlex.split("Test'helloworld'foo")['Test','helloworld','foo']>>>shlex.split('Test"

  8. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  9. ruby-on-rails - 如何在 ruby​​ 交互式 shell 中有多行? - 2

    这可能是个愚蠢的问题。但是,我是一个新手......你怎么能在交互式ruby​​shell中有多行代码?好像你只能有一条长线。按回车键运行代码。无论如何我可以在不运行代码的情况下跳到下一行吗?再次抱歉,如果这是一个愚蠢的问题。谢谢。 最佳答案 这是一个例子:2.1.2:053>a=1=>12.1.2:054>b=2=>22.1.2:055>a+b=>32.1.2:056>ifa>b#Thecode‘if..."startsthedefinitionoftheconditionalstatement.2.1.2:057?>puts"f

  10. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

随机推荐