我很难以编程方式重新设置maxLines
的{{1}}属性。
刚尝试设置为TextView
,但它不起作用。 0
崩溃了应用程序。我可以使用更简单的解决方法并将-1
设置为maxLines
,但我不想这样做。
任何想法如何做到这一点?
已更新
好吧,我发现了一个问题..我也设置了Ellipsize ......我将使用以下解决方法:
5000
答案 0 :(得分:54)
由于还没有批准的答案 - 重置TextView的maxlines属性的正确方法是:
textView.setMaxLines(Integer.MAX_VALUE);
根据Valdemar的评论及此stackoverflow answer。使用-1将导致ArrayIndexOutOfBoundsException
。
请注意,根据documentation,只有END
和MARQEE
setEllipsize()设置才会获得maxlines> = 2的尊重:
如果setMaxLines(int)用于设置两行或更多行,则为END和 仅支持MARQUEE *(其他椭圆化类型不支持 任何东西)。
答案 1 :(得分:-1)
-1
不应该使您的应用程序崩溃。这实际上是默认情况下在TextView
内使用的内容:
case com.android.internal.R.styleable.TextView_maxLines:
setMaxLines(a.getInt(attr, -1));
break;
这段代码显示,当未指定android:maxLines
时,代码会使用-1
通过setMaxLines()
函数设置值。
我也做了测试申请来验证我的结论。它工作正常而不会崩溃:
public class HelloWorld extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
TextView text = (TextView)findViewById(R.id.text);
text.setMaxLines(-1);
}
}
答案 2 :(得分:-1)
要设置文本的maxLines,请使用mTextView.setMaxLines(0),或者必须以编程方式测量高度文本并乘以最大行数 结果应设置为textView的高度
答案 3 :(得分:-2)
如果您想只有一行,那么为什么不使用:
txtView.setSingleLine(true);