android - 在区域内的 TextView 中将文本居中时出现问题

标签 android android-emulator textview android-linearlayout android-relativelayout

我在使用 TextView 和将文本置于文本区域内居中时遇到问题。具体来说,我有一个 TextView,但是当我的文本中包含跨越底部边距的字母(即 p、g、q、y 等)时,这些字母会被截断。我试图将文本居中放置在该区域内,但运气不佳。

[更新] 我现在使用 wrap_content 作为我的高度解决了字母在底部被截断的问题,但发现了另一个问题。现在看来,文本位于该区域的较低位置,在顶部留下了这个空白。我修改了我的布局以反射(reflect)最新的(见下文)。基本上,那些之前被截断的字符(g、y、j 等)正在触及正下方的区域,这很好,但它似乎在顶部留下了填充。我试图将重力更改为 center_vertical 或 center,但运气不佳:

请注意,我必须使用给定 textSizes 的规范(即我无法更改这些值)

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="43.3dip"
        android:background="@drawable/custom_bg"
        android:orientation="horizontal">
        <ImageButton
            android:id="@+id/headshot"
            android:layout_width="43.3dip"
            android:layout_height="43.3dip"
            android:src="@drawable/sample"
            android:background="@drawable/head_btn"
            android:layout_gravity="center" />
        <RelativeLayout
            android:id="@+id/name_and_email"
            android:layout_width="230.7dip"
            android:layout_height="43.3dip"
            android:orientation="vertical">


        <TextView
            android:id="@+id/name"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="@color/custom_color"
            android:textSize="18.6sp"
            android:singleLine="true"
            android:ellipsize="end"
            android:layout_alignParentTop="true"
            android:gravity="center_vertical"
            android:background="#c5ff15"
            android:lineSpacingExtra="0sp"
            android:text="AaBbCcDdGgJjTtYy" />
        <TextView
            android:id="@+id/email"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="@color/custom_color"
            android:textSize="13.3sp"
            android:singleLine="true"
            android:ellipsize="end"
            android:layout_centerInParent="true"
            android:layout_below="@id/name"
            android:gravity="center_vertical"
            android:visibility="gone"
            android:text="qypgj@gmail.com" />


        </RelativeLayout>
        <ImageButton
            android:id="@+id/headshot2"
            android:layout_width="43.3dip"
            android:layout_height="43.3dip"
            android:src="@drawable/sample"
            android:background="@drawable/head_btn2"
            android:layout_gravity="center" />
    </LinearLayout>
</LinearLayout>

有人可以帮忙吗? MB

最佳答案

为什么要尝试手动设置高度?使用 layout_height="wrap_content"会好很多。我想问题是您的 14.3sp 文本大小对于您允许的区域来说太大了。

此外,在工具文件夹下可以找到 HeirarchyViewer,这是调试复杂布局的一个很好的资源。

关于android - 在区域内的 TextView 中将文本居中时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3419583/

相关文章:

android - 是否可以从 Activity 类启动 Fragment 类..使用 Intent

android - JSON 异常和权限

java - Android 返回键问题

android - 错误消息 : emulator-arm. exe 已停止工作

android - 为什么我不能在不同布局中对 ViewPager 中的不同 fragment 使用相同的 ID

android - 替换android中的手势库模板

android-emulator - 更新到 MacOS High Sierra 后,Android 模拟器警告和性能低下

android - Assets 中的 BitmapFactory.decodeStream 在 Android 7 上有时会失败

应用程序小部件中的 Android TextView autoLink

android - 如何在 Android TextView 中将文本换行到下一行?