首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

表行中TextView的第二行没有真正的文本对齐,但第一行可以

问题描述:表行中TextView的第二行没有真正的文本对齐,但第一行可以。

解决方案: 这个问题可能是由于TextView的布局设置不正确导致的。要解决这个问题,可以尝试以下几种方法:

  1. 使用LinearLayout布局:将TextView放在一个垂直的LinearLayout中,设置LinearLayout的gravity属性为center_vertical,这样可以保证文本在垂直方向上居中对齐。
代码语言:txt
复制
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第一行文本" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第二行文本" />

</LinearLayout>
  1. 使用ConstraintLayout布局:将TextView放在一个ConstraintLayout中,设置第一行文本的baseline对齐约束为parent的top,设置第二行文本的baseline对齐约束为第一行文本的bottom,这样可以保证文本在垂直方向上居中对齐。
代码语言:txt
复制
<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/firstLineTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第一行文本"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第二行文本"
        app:layout_constraintTop_toBottomOf="@id/firstLineTextView"
        app:layout_constraintBaseline_toBaselineOf="@id/firstLineTextView" />

</androidx.constraintlayout.widget.ConstraintLayout>

以上是两种常见的解决方案,根据具体情况选择适合的布局方式。如果还有其他问题或需要更详细的解答,请提供更多的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android TextView 缩进指定距离

这个方案需要解决的问题是,这里是否有相关的 Api 可以直接设置每行留白的距离,另外首行标签和文字居中对齐问题,毕竟设计师都是像素眼,没有按要求对齐,行距不对都可能无法验收。...第二种方案就是取巧,将 title 的 TextView 拆分为两个 TextView,第一行直接就是线性水平布局,第二行再是一个独立的TextView。...这里需要解决的问题是,我怎么获取 TextView 第一行显示的文字,然后截取剩余的文字单独显示在第二行。...这种方法实现似乎没有第一种优雅,但是可以轻松避开第一行标签和 title 文字居中对齐的问题。 在否定一种方案和提出新的两种方案后,可以看看后两种方案到底可以怎么实现。...就可以判断下,如果和总长度相等,那就说明第一行就可以显示完全,第二行根据具体情况,控制显示与否。

1.9K30
  • 《Kotlin从零到精通Android开发》资源下载和内容勘误

    源码与各章的对应关系表见下图: ?...9、第126页的“6.3.1  文本视图TextView” 最后一段的第一行“对齐方式的或操作外”改为“对齐方式的按位或操作符”,也就是增加了“按位”,并且把“外”换成“符”。...10、第129页的“6.3.3  文本编辑框EditText” 第一段的第四行,“编辑观察器EditWatcher”改为“文本观察器TextWatcher”,第二段里面的“编辑观察器”以及第130页第一段的...18、第277页的“9.4.2  绑定方式启动服务” 第一段第三行的“表示解除绑定并停止服务(如果原来没有启动)”改为“表示解除绑定并停止服务(如果原来有启动)”,也就是把括号里面的“没有”改成“有”。...21、第329页的“10.5.1  需求描述” 该小节第一段第六行的“App自动进行升级判断则后台服务并没有对应的界面”改为“App自动进行升级判断的后台服务并没有对应的界面”,也就是把中间的“则”改为

    1.5K20

    Android TextView 缩进指定距离

    这个方案需要解决的问题是,这里是否有相关的 Api 可以直接设置每行留白的距离,另外首行标签和文字居中对齐问题,毕竟设计师都是像素眼,没有按要求对齐,行距不对都可能无法验收。...第二种方案就是取巧,将 title 的 TextView 拆分为两个 TextView,第一行直接就是线性水平布局,第二行再是一个独立的TextView。...这里需要解决的问题是,我怎么获取 TextView 第一行显示的文字,然后截取剩余的文字单独显示在第二行。...这种方法实现似乎没有第一种优雅,但是可以轻松避开第一行标签和 title 文字居中对齐的问题。 在否定一种方案和提出新的两种方案后,可以看看后两种方案到底可以怎么实现。...就可以判断下,如果和总长度相等,那就说明第一行就可以显示完全,第二行根据具体情况,控制显示与否。

    74430

    微信“ 15。。。。。。。。。”来龙去脉

    又一个问题 那么,iOS的排版是否就是完美的呢,其实仔细观察并非这样,从上图可以看出,除了Android,iOS也会有这种问题,那就是气泡中的文字左右参差不齐。...对于文字排版,这容易让人想起,“我的(word)哥”,微软对于这款应用,有没有一些文字左右对齐的手段或者方案可以参考呢?...系统TextView并没有暴露接口去代理它们。当然没有接口不意味着做不到,我们完全可以通过反射等手段代理它,但其实这么做的话,代价是比较大的。...效果如下图: 对比优化前的效果,确实这么做效果是明显的。但仔细观察,还是会发现,对于一些特殊的中文全角符号(如,《》()【】等)因为有多余的padding存在,放在行首和行末也会导致参差不齐的效果。...于是我们多增加了一条规则 4、对一些常见的有多余padding的全角符号位于行首或行末时,默认减去多余的padding来达到更好的对齐效果。

    3.5K40

    Android精通:布局篇

    在TableLayout中可以通过setConlumnShrinkable()或setConlumnStretchable()方法来指定某些列为可以缩小或可伸缩,列是从0开始计数的,第一列为0。...shrinkColumns为设置被收缩的列的序号,收缩是用于在一行中列太多或者某列的内容文本过长,会导致某列的内容会被挤出屏幕,这个属性是可以帮助某列的内容进行收缩,用于防止被挤出的。...GridLayout网格布局 GridLayout网格布局是在Android 4.0以后引入的一种新的布局模式,和表格布局是有点类似的,但比表格布局的好,功能也是很强大的,它可以设置布局有多少行和有多少列...,也可以设置布局中的组件的排列方式,也可以设置组件的位置,横跨多少行,多少列。...为与某控件右边缘对齐,以id为标记 android:layout_alignBaseline 为与某控件的文本内容在一条直线上 android:layout_alignParentBottom 为在父容器最下

    2.1K40

    Android精通:TableLayout布局,GridLayout网格布局,FrameLayout帧布局,AbsoluteLayout绝对布局,RelativeLayout相对布局

    在TableLayout中可以通过setConlumnShrinkable()或setConlumnStretchable()方法来指定某些列为可以缩小或可伸缩,列是从0开始计数的,第一列为0。...shrinkColumns为设置被收缩的列的序号,收缩是用于在一行中列太多或者某列的内容文本过长,会导致某列的内容会被挤出屏幕,这个属性是可以帮助某列的内容进行收缩,用于防止被挤出的。...GridLayout网格布局 GridLayout网格布局是在Android 4.0以后引入的一种新的布局模式,和表格布局是有点类似的,但比表格布局的好,功能也是很强大的,它可以设置布局有多少行和有多少列...,也可以设置布局中的组件的排列方式,也可以设置组件的位置,横跨多少行,多少列。...:layout_alignRight为与某控件右边缘对齐,以id为标记 android:layout_alignBaseline 为与某控件的文本内容在一条直线上 android:layout_alignParentBottom

    4.1K20

    Android TextView实现查看全部和收起功能

    实现上述步骤的难点在于: 如何在setText()之前判断处理文字是否超过了最大的限制行数 如何获取超过限制行数最后一个文字的下标 解决以上两个问题需要用到一个处理TextView文本排版,拆行处理的工具类...对齐方式 TextDirectionHeuristic textDir 文本显示方向 float spacingmult 行间距倍数,默认是1 float spacingadd 行距增加值,默认是0...如果需要详细了解StaticLayout的工作原理,可参考StaticLayout 源码分析 然后我们可以通过调用getLineCount()方法获取到布局该文本的行数,调用getLineStart(int...line)方法可以获取line下一行第一个文字的下标。...的高度,以此让textview是一行一行的展示 contentView.getLayoutParams().height = elipseHeight;

    4.6K82

    android布局属性具体解释

    2: RelativeLayout ( 相对布局 ) : (里面能够放多个控件,可是一行仅仅能放一个控件) 第一类 : 属性值为 true 或 false android:layout_centerHorizontal...:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐 android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐 第三类:属性值为详细的像素值,如...table) 这个表格布局不像HTML中的表格那样灵活,仅仅能通过 TableRow 属性来控制它的行而列的话里面有几个控件就是几列(普通情况)。.../*创建列对象*/   TableRow tableRow = new TableRow(this);   /*文本框对象*/   TextView temp = new TextView(this);...  temp.setText(“text的值”);   /*将此文本加入到列中*/   tableRow.addView(temp);   android:stretchColumns=”1,2,3,4

    86320

    Draw Text in Deep

    Android系统提供了Textview来提供文字的显示,但很多时候开发者还需要使用Canvas来绘制Text,这时候,canvas.drawText()就不像Textview的使用这么简单了,需要掌握文字的测量以及渲染的流程...来设置,在Paint自定义绘制Text中,可以使用Paint.fontMetrics中的leading属性设置 行高 即字符所在行的高度 = ascent + descent + leading,即字符的高度...如果在TextView中,可以直接通过getLineHeight()方法获取。...字符间距(kerning) 对于textView和Paint绘制的Text,可以分别使用各自类中的getLetterSpacing()和setLetterSpacing()方法获取和设置字符间距,对于TextView...当你使用drawText一行行绘制文字的时候,可以在换行的时候获取下一行的baseline坐标。

    1.4K30

    Android布局详解

    坐标 ) horizontal 水平方向(沿着 x 坐标) 线性布局中可以使用 android:layout_weight 属性设置权重,可以将 LinearLayout 中剩下的部分进行比例划分 LinearLayout...=”1″ /> LinearLayout 中使用 android:gravity 可以调整孩子的对齐方式,但是要注意方向,垂直的 ( 如果高不定 ) ,可以调整孩子在 left\centerhorizontal...列数由TableRow中的子控件决定, 直接在TableLayout中添加子控件会占据整个一行。...TableLayout常用属性: android:shrinkColumns:设置可收缩的列,内容过多就收缩显示到第二行 android:stretchColumns:设置可伸展的列,将空白区域填充满整个列...TableLayout(表格布局)其实有点大同小异; 不过新增了一些东西 1、跟LinearLayout(线性布局)一样,他可以设置容器中组件的对齐方式 2、容器中的组件可以跨多行也可以跨多列(相比TableLayout

    1.5K20

    Android P 中的新文本特性

    为了测量及布局给定文本,TextView 必须做很多工作,例如读取字体文件、查找字形、决定形状、测量边界框以及将文本缓存在内部文本缓存中。...然后 可以在 TextView 中设置 PrecomputedText.create(CharSequence, params) 的结果。这样,只有大约10%的工作留给 TextView 执行。 ?...行高及基线文本对齐 有时设计者提供给开发者的布局参数与现有的 TextView 属性不完全匹配。...设置基线文本对齐 为控制首行及末行基线与视图边界之间的间距,我们增加了两个新属性: firstBaselineToTopHeight 与 lastBaselineToBottomHeight。...firstBaselineToTopHeight: 设置 TextView 的上边界及 TextView 的首行基线之间的间距。该属性实际上更改的是顶部边距。

    1.5K20

    真·富文本编辑器的演进之路-Span开胃菜

    val paragraphFirst = "这是第一段。这是第一段。这是第一段。这是第一段。这是第一段。\n" val paragraphSecond = "这是第二段。这是第二段。这是第二段。...ImageSpan是富文本中的核心成员,通过ImageSpan,理论上可以实现各种富文本效果的,虽然有些场景的效果差强人意,但足以体现出它的强大,所以,掌握ImageSpan,是掌握富文本的重中之重。...这种方式在ImageSpan尺寸不是很大的时候,是可以的,其原理就是对ImageSpan进行偏移,但是文字的行高是没有发生改变的,也就是像图中这样,多行文本的行高并未发生改变,但是ImageSpan实现居中的效果...第二种方式,就是将文本的行高属性做修改,也就是让ImageSpan尺寸小于行高,动态将原本文字的行高,改为ImageSpan的尺寸,甚至更大一点,这样ImageSpan自然就可以居中了。 ?...用这种方式处理后,文字和ImageSpan会在新的行参数中整体居中,这种效果应该是比较具有拓展性的,不像第一种会在ImageSpan过大的时候,遮挡下一行的文字。

    2.6K20
    领券