2016-10-09 72 views
1

我發現Android TextView和ellipsize屬性有一個奇怪的行爲。 當文本很長並且應用了ellipsize屬性時,文本的原始位置會丟失,文本顯得有點偏高。帶有ellipsize屬性的Android TextView從原始位置移動

是的,我可以用編程方式解決它,但我想知道它是否可能是一個錯誤,或者我做錯了什麼。

一個非常簡單的例子來測試它。 更改兩個文本視圖的文本以查看橢圓化文本或不像我在上次截圖中顯示的文本。如果你比較屏幕截圖,你會看到這個問題。

我用'dp'和'sp'來測試它是否可能是不同的行爲。但事實並非如此。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/content_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@android:color/white"> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:layout_marginTop="50dp" 
     android:background="@android:color/holo_green_dark" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="23.3dp" 
     android:ellipsize="end" 
     android:maxLines="1" 
     android:paddingLeft="16dp" 
     android:paddingRight="16dp" 
     android:text="Hello World! (dp textSize)" 
     android:textColor="@android:color/black" 
     android:textSize="25dp" /> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:layout_marginTop="150dp" 
     android:background="@android:color/holo_blue_dark" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="123.2dp" 
     android:ellipsize="end" 
     android:maxLines="1" 
     android:paddingLeft="16dp" 
     android:paddingRight="16dp" 
     android:text="Hello World! (sp textSize)" 
     android:textColor="@android:color/black" 
     android:textSize="25sp" /> 

</RelativeLayout> 

Short texts under the blocks color perfectly glued

Simply changing the texts with a long string and the texts aren't perfectly glued

SOLUTION:

的解決方案是使用了屬性 'SINGLELINE',然後該問題消失。但AndroidStudio告訴我'singleLine已被棄用'。

+0

解決方案是使用屬性'singleLine',然後問題消失。但AndroidStudio告訴我'singleLine已被棄用'。 – aLxnophis

回答

1

我與字體「Courier New」有類似的問題 - 當1行文本被橢圓化時,它向下移動了幾個像素。 我的問題的解決方案是添加:

android:includeFontPadding="false" 

到哪裏我使用該字體。

+0

我會看看這個選項。謝謝! – aLxnophis

相關問題