Android 如何在文本视图中居中对齐文本,并在内容更改时避免调整大小?

Android 如何在文本视图中居中对齐文本,并在内容更改时避免调整大小?,android,android-layout,Android,Android Layout,我正在为Android开发一个计时器应用程序,但TextView元素显示分、秒和毫秒时出现问题。我想将我的文本居中,同时避免调整视图的大小。由于字段的快速调整,每秒都会发生调整大小的操作,因此您几乎看不到数字。发生这种情况的原因是字符“1”与例如“0”不相同。我读过关于安卓:gravity=“center”,但当我读到安卓:layout\u width=“260dp”(固定大小)时,字符串仍在调整大小。如果我没有android:gravity=“center”且大小固定,则内容将向左对齐。换言之

我正在为Android开发一个计时器应用程序,但TextView元素显示分、秒和毫秒时出现问题。我想将我的文本居中,同时避免调整视图的大小。由于字段的快速调整,每秒都会发生调整大小的操作,因此您几乎看不到数字。发生这种情况的原因是字符“1”与例如“0”不相同。我读过关于安卓:gravity=“center”,但当我读到安卓:layout\u width=“260dp”(固定大小)时,字符串仍在调整大小。如果我没有android:gravity=“center”且大小固定,则内容将向左对齐。换言之:

<TextView
    android:layout_width="260dp"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:background="@drawable/border"
    android:id="@+id/textView"
    android:textSize="70dp"
    android:textIsSelectable="true"
    android:layout_marginTop="54dp"
    android:text="00:00:00"
    android:gravity="center"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"/>

*重力固定宽度-居中对齐但移动文本

<TextView
    android:layout_width="260dp"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:background="@drawable/border"
    android:id="@+id/textView"
    android:textSize="70dp"
    android:textIsSelectable="true"
    android:layout_marginTop="54dp"
    android:text="00:00:00"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"/>

*不带重力的固定大小-固定文本,但左对齐。 再次感谢。

分成3个文本视图(固定宽度)并放入线性/相对布局。

尝试以下代码:-
Try This Code:-

<TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:gravity="center"
       android:text="00:00:00"
        android:textAppearance="?android:attr/textAppearanceMedium" />

尝试以编程方式设置单空格字体,以确保字符宽度不变:

textView.setTypeface(Typeface.MONOSPACE);

使用任意等距外部字体。每个字符的宽度是恒定的,因此字符串的大小不会改变。

布局中只有一个文本视图吗?嗯,没什么大不了的。我更喜欢保持左对齐来拆分。不,不会的,仔细阅读我的主题。当我移除
重力
时,文本没有抖动。问题是我已经加载了自定义字体<代码>字体;face=createFromAsset(getAssets(),“数字计数器_7.ttf”);textView.setTypeface(face)我明白了。有没有办法把字体改成空格?否则,使用默认的单空格字体将非常容易。不管怎么说,你是说没有重力=“重心”,就不会发生“震动”。如果将文本视图包装在具有width=“match\u parent”和gravity=“center”的布局中,并为文本视图使用固定的宽度,会发生什么情况?仍在抖动,文本与中心对齐,但仍在抖动。在文本视图内未指定重力时仍在抖动?如果是的话。。。没有更多的想法,抱歉:(拆分,正如@ArnavM所建议的(甚至可能在9个文本视图中,每个字符1个),将是剩下的唯一选项。