2013-06-21 105 views
3

對於y軸上太長的文本,是否有任何等價物android:ellipsize(在x軸上橢圓化文本太長)?我有一個TextView,它必須是一個固定的高度,但是它裏面的文本通常太長而不適合,並且我希望在切成兩半之前停止。TextView ellipsize高度明智

example cut off

我不想設置android:maxLines屬性,這樣我可以支持多種屏幕尺寸。

我一直在使用也算...

int maxLines = (int) textView.getHeight()/textView.getLineHeight(); 
textView.setMaxLines(maxLines); 

...,但是這可能會導致因爲markup within the text can cause individual lines to be taller or shorter than this height的問題。

編輯:我可以在這裏使用ScrollView來防止在一半的文本中切割,但我寧願這是一個預覽,下面的按鈕讓用戶點擊查看整個文本。

+0

TextView必須是固定的高度,但您不想使用maxLines,因此您可以支持多種屏幕尺寸?對我來說這似乎是一個矛盾。我個人會使用maxLines,併爲不同的屏幕尺寸提供maxLines的不同佈局/值。 –

+0

我需要TextView排列在一個網格中,並在它旁邊有一個固定高度的圖像。我可以將文本儘快切斷,但不希望它經過它旁邊的圖像,因此TextView的高度固定。圖像會不時發生變化,因此高度會發生變化,而硬編碼的maxLines將不夠用。 – yiati

+0

嘿yiati ...你有沒有找到任何解決方案? – deepak4bin

回答

0

你可以將你的TextView包裝在一個ScrollView中。

<ScrollView android:id="@+id/MyTextParent" 
    android:layout_width="fill_parent" 
    android:layout_height="100dp" 
    android:scrollbars="vertical"> 

    <TextView android:id="@+id/MyText" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="TEXT"/> 

</ScrollView> 
+0

這將是一個可行的解決方案,但我試圖讓它不是一個滾動視圖,而是一個帶有下面鏈接的預覽會將用戶帶到整個文本。 – yiati

0

嘗試手動設置ellipsize,使用setEllipsize(TextUtils.TruncateAt where),並確定要被截斷的文本。