重置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上的镜像中查看源代码。
试试这个( 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); } }