当前位置: 首页 > 面试题库 >

如果单词对于textview来说太长,则将其强制换行

丁阳羽
2023-03-14
问题内容

我有一个TextView,当以编程方式填充单词时,该行不会正确换行。

电流输出:

这是正在发生的事情:

| Hi I am an examp |
| le of a string t |
| hat is not break |
| ing correctly on |
| words            |

预期产量:

我要这个:

| Hi I am an       |
| example of a     |
| string that is   |
| breaking         |
| correctly on     |
| words            |

Java:

String mQuestion = "Hi I am an example of a string that is breaking correctly on words";
mTextView.setText(mQuestion);

XML:

<LinearLayout
    android:id="@+id/questionContainer"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/questionHeaderTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/header_bg"
        android:paddingBottom="10dp"
        android:paddingLeft="25dp"
        android:paddingTop="10dp"
        android:text="@string/category_hint"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Space
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".05" />

        <!-- THIS ONE WILL NOT WRAP !-->
        <TextView 
            android:id="@+id/questionHolderTextView"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".9"
            android:layout_marginBottom="15dp"
            android:layout_marginTop="15dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:text="@string/question_holder"
            android:singleLine="false"
            android:scrollHorizontally="false"
            android:ellipsize="none"
            android:textSize="20sp" />

        <Space
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".05" />

    </LinearLayout>

    <View
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:layout_marginTop="5dp"
        android:background="@color/black" />
</LinearLayout>

<LinearLayout
    android:id="@+id/answerContainer"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:visibility="visible" >
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_marginTop="25dp"
    android:gravity="center" >

    <Button
        android:id="@+id/nextButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="25dp"
        android:text="@string/next" />
</LinearLayout>

问题答案:

首先,您可以使用绘制油漆TextView.getPaint(),然后每次添加一个新单词(嗨,我,我等),调用measureText油漆。如果结果长度大于TextView的可用宽度,请\n在新单词之前添加一个。重置数据并重复步骤。



 类似资料:
  • 我在持久化LocalDate字段[在列中使用VARCHAR(20)类型]时收到以下错误: 字段定义如下: 我使用的是spring data starter(1.5.9版本)。它在内部使用hibernate 5.0.12。 根据博文https://www.thoughts-on-java.org/hibernate-5-date-and-time/ Hibernate 5,支持Java 8特性(Da

  • 我有我的班级电影: 和我的控制器方法: 我得到一个错误: Servlet.service()的servlet[springDispatcher]在上下文与路径[/web编程]抛出异常[请求处理失败;嵌套异常org.springframework.dao.DataIntegrityViolationException:无法执行语句;SQL[n/a];嵌套异常是org.hibernate.except

  • 我正在为我的公司设计一个RoR项目,我们的开发团队已经遇到了一些关于设计的争论,特别是数据库。 我们有一个名为的模型,需要持久化。这是一个非常非常小的模型,除了 id 之外只有三个 db 列,但是当我们投入生产时,可能会有很多这样的模型。我们每天看到多达 1,000,000 次插入。模型将只能由其上的两个外键搜索,这些外键可以索引。同样,这些模型永远不必被删除,但我们也不必在它们大约三个月大后保留

  • 错误代码:1406。数据对于列来说太长了 现在一些值 插入的记录 如果我们 它显示了错误信息 错误代码:1406。数据对于列来说太长了 但我的期望是,我想在表中插入至少前45个字符 如果问题不清楚,请告诉我。 我知道此错误的原因。我正在尝试插入超过数据类型长度的值。 我想要MySQL中的解决方案,因为它可以在MSSQL中使用。所以我希望它也能在MySQL中使用。

  • 问题内容: 我在MySQL数据库中有一个description字段,我在两个不同的页面上访问数据库,一个页面显示整个字段,但在另一个页面上,我只想显示前50个字符。如果description字段中的字符串少于50个字符,则不会显示…,但是如果不是,则在前50个字符后显示…。 示例(完整字符串): 示例2(前50个字符): 问题答案: PHP的方法很简单: 但是您可以使用以下CSS达到更好的效果:

  • 我正在将.csv导入Mysql,如下所示: …引发以下错误: "对于第63行的“注释”列,数据太长" 我看着第63行。csv,而“评论”的长度为115。 create语句似乎没问题(带有): 在将其标记为副本之前,请注意: 这个StackOverflow解决方案显然不适合:我已经将< code >字符集utf8添加到< code>LOAD DATA sql中。 另一个StackOverflow解决