2014-04-30 62 views
0

我想以這種方式編程方式創建一個TextView:Ellipsize「END」不能正常工作

TextView textDescription = new TextView(this); 
LinearLayout.LayoutParams layoutParamsDesc = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 25); 
layoutParamsDesc.setMargins(10, 0, 10, 0); 
textDescription.setLayoutParams(layoutParamsDesc); 
textDescription.setText("Lengthy text in TextView"); 
linearLayoutDatos.addView(textDescription); 
textDescription.setEllipsize (TextUtils.TruncateAt.END); 
textDescription.setMaxLines(1); 
textDescription.setHorizontallyScrolling(false); 

然而,不顯示「三個點」。

我在做什麼錯?

在此先感謝。

回答

0

添加textDescription.setSingleLine()

+0

我嘗試過,但它不工作。 – john518

-1

嘗試......

textDescription.setEllipsize (TextUtils.TruncateAt.MARQUEE); 
+0

我試過了,但不起作用。 – john518

+0

您可以添加填充權的textview也許5 dp,看看它是否顯示3個點或不.... textDescription.setPadding(0,0,5,0) – Aritra

+0

我添加了textDescription.setPadding(0,0,5 ,0)使用「END」和「MARQUEE」,但是「三點」在任何情況下都不顯示。填充沒問題,但顯示空白空間。 – john518

1

你寫textDescription.setMaxLines(1);但對於它的正確用法,以工作爲象下面這樣:

對於單行

textDescription.setSingleLine(true); 

對於多行(超過1)

textDescription.setMaxLines(2); 

另一件事是,在用textDescription完成所有設置後寫下這一行。那麼到底

linearLayoutDatos.addView(textDescription); 

這將是這樣的:

TextView textDescription = new TextView(this); 
LinearLayout.LayoutParams layoutParamsDesc = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 25); 
layoutParamsDesc.setMargins(10, 0, 10, 0); 
textDescription.setLayoutParams(layoutParamsDesc); 
textDescription.setText("Lengthy text in TextView"); 
textDescription.setEllipsize (TextUtils.TruncateAt.END); 
textDescription.setSingleLine(true); 
textDescription.setHorizontallyScrolling(false); 
linearLayoutDatos.addView(textDescription); 
+0

我試過了,但它不起作用。它甚至不「橢圓化」文本。如果我添加「textDescription.setWidth(0)」文本被截斷,但「三點」不會被添加。 – john518