重置Android textview maxlines

我想制作一个可以通过用户的触摸来折叠的TextView。 当TextView崩溃时,我设置textView.setMaxLines(4); 。 如何在我的展开方法中清除这个状态? 我只能想到setMaxLines()的值为10000的大数值。

有更好的方法来实现这个吗?

实际上,android平台的做法是将MaxLine设置为Integer.MAX_VALUE。

 textView.setMaxLines(Integer.MAX_VALUE); 

另外,如果您使用的是省略号,请不要忘记将其设置为空。

 textView.setEllipsize(null); 

只需检查android框架是如何做到的;)看setMaxLines(Integer.MAX_VALUE);

 private void applySingleLine(boolean singleLine, boolean applyTransformation) { mSingleLine = singleLine; if (singleLine) { setLines(1); setHorizontallyScrolling(true); if (applyTransformation) { setTransformationMethod(SingleLineTransformationMethod.getInstance()); } } else { setMaxLines(Integer.MAX_VALUE); setHorizontallyScrolling(false); if (applyTransformation) { setTransformationMethod(null); } } } 

您可以在Android开放源代码项目(AOSP)的源代码中find它,

https://source.android.com/source/downloading

如果你不想下载源代码,你可以在github上的镜像中查看源代码。

https://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/java/android/widget/TextView.java

试试这个( infoView.getLineCount() ):

 public void onMoreClick(View v) { Button btn = (Button) v; if(!moreSwitcher) { infoView.setMaxLines(infoView.getLineCount()); infoView.setLines(infoView.getLineCount()); moreSwitcher = true; btn.setText(R.string.collapse); }else{ infoView.setMaxLines(5); infoView.setLines(5); moreSwitcher = false; btn.setText(R.string.expand); } }