文本视图按字母打断我的单词

2022-09-03 07:52:40

我的要求:创建“传入气泡”,其宽度按内容划分,最大宽度为90%。

我有这个标记:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="1.0"
    tools:background="@color/white_smoke">

    <LinearLayout
        android:id="@+id/flBubble"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="start"
        android:background="@drawable/bubble_in"
        android:layout_weight="0.9">

        <ImageView
            android:id="@+id/ivSay"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="?android:attr/selectableItemBackground"
            android:contentDescription="@string/default_content_description"
            android:padding="8dp"
            android:src="@drawable/ic_play_circle_outline_black_24dp"
            android:tint="@color/primary"/>

        <TextView
            android:id="@+id/tvValue"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:padding="8dp"
            android:textColor="@color/black"
            android:textSize="16sp"
            tools:text="I would like to go to an Italian restaurant"/>
    </LinearLayout>

    <View
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="0.1"/>
</LinearLayout>

有时我得到以下结果:bad word wrapping

但我预计会出现以下结果(这是错误的,来自Android Studio预览版的鼓励截图):expected word wrapping

如何防止逐字逐句?restaraunt

更新

虽然我使用minSdk= 15,但我尝试使用,但我还没有得到预期的结果。:breakStrategyandroid:breakStrategy="simple"simple break strategy

android:breakStrategy="balanced":balanced break strategy

我发现了一个相关的问题:如果单词对于文本视图来说太长,则强制下一个单词到新行,但我没有取消,我如何获得TextView的最大可用宽度?layout_width="wrap_content

如果需要,我可以覆盖并在那里放置换行符,那就太好了。TextView.setText


答案 1

天哪,我的绳子里有!&nbsp;

value.replaceAll("\\s", " ");

谢谢大家!


答案 2

MaxWidth 属性用于文本视图,否则应为文本视图提供宽度

   <com.custom.views.CustomTextView
        android:id="@+id/txt_send_chat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:gravity="center_vertical"
        android:maxWidth="250dp"
        android:textColor="@color/color_chat_sender"
        android:textSize="16sp"
        app:font_name="@string/font_roboto_regular" />

推荐