2016-11-28 69 views
5

我有一个TextView固定宽度如下:防止Word断

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:textSize="12sp" 
    tools:text="Health Department" 
    android:layout_marginTop="4dp" 
    android:maxLines="2" 
    /> 

...但它看起来像:

|Health Dep-| 
    | artment | 

...虽然我希望它是:

| Health | 
    |Department| 

我可以用什么XML属性来做到这一点?

+1

是否保证这两个单词每次都会在不同的行上?如果答案是肯定的,那么你可以在你的字符串中使用“换行符”。把它写成像这样'tool:text =“Health \ nDepartment”' – androidtitan

+1

TextView的宽度取决于屏幕密度。如果没有好的解决方案,这可能是一个很好的解决方法。谢谢你的提示! – Asym

回答

6

从api 23你可以选择休息策略,并应该解决你的问题。

默认情况下,用于TextView的android使用BREAK_STRATEGY_HIGH_QUALITY,这是导致单词使用连字符断开。

如果您想避免这种情况,您可以将休息策略设置为BREAK_STRATEGY_SIMPLE

你可以在api doc找到更多的信息。

我希望能帮到你。

3

这是Android 6版本(Marshmallow)中的一件新事物。

尝试添加下面的代码到你的TextView在XML布局

android:hyphenationFrequency="none" 
3

我想申请在this answer我的整个应用程序的所有textviews提到的休息策略,并添加包含新的V23/styles.xml:

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

    <style name="Base.Widget.TextView" parent="android:Widget.TextView"> 
     <item name="android:breakStrategy">simple</item> 
    </style> 

</resources> 

而且我把我的themes.xml以下

<item name="android:textViewStyle">@style/Base.Widget.TextView</item> 
2

请尝试在TextView中使用此工具,这对我有用

android:breakStrategy="simple"