首页 > 解决方案 > 为什么超出单行 TextView 边界的单词不会被渲染和剪切?

问题描述

我有一个TextView封闭在这样的容器中:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="40dp"
    android:layout_height="wrap_content">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:maxLines="1"
        android:text="Hi World" />

</FrameLayout>

40 dp的宽度FrameLayout不足以包含整行文本。因此,我希望TextView被其父级剪辑。相反,它TextView根本没有呈现“世界”这个词!

预期的 实际的
预期 - 文本被剪裁 实际 - 第二个字未呈现
  1. 为什么第二个词没有渲染?
  2. 我怎样才能得到TextView剪裁呢?这是宽度更改动画(容器大小调整为 0dp 宽度)的一部分,其中删除字母或文本会导致烦人的闪烁。

标签: androidandroid-layouttextviewandroid-animation

解决方案


这可以按您的预期工作

<TextView
        android:layout_width="wrap_content"
        android:layout_height="40dp"

        android:singleLine="true"
        android:ellipsize="none"

        android:maxLines="1"
        android:text="Hi World" />

还有这个

<TextView
        android:layout_width="wrap_content"
        android:layout_height="40dp"

        android:inputType="text"

        android:maxLines="1"
        android:text="Hi World" />

在此处输入图像描述


推荐阅读