我正在尝试构建类似文本阅读器的工具。它必须水平滑动(正常书本型),而不是向下滚动。
为此,我要用许多TextView动态填充ViewFlipper。直观的想法是,我在每个先前的TextView溢出上创建一个新的TextView,并将其添加到ViewFlipper中。
我可以使用setMaxLines()完成此操作,但是我无法获得超出该最大行数的文本。
问题:
如何在溢出时将文本从一个TextView移动到另一个?
或者
我决定使用的方法从根本上错了吗?
编辑:
抱歉,由于某些原因,我无法明确说明我的问题。也许这会有所帮助:
TextView text1, text2;
String s = "Extreamly long string. Much longer than this one";
text1.setText(s);
text2.setText( // Text that is overflowing //);
如何确定字符串的哪一部分可见,哪一部分溢出?
谢谢
TextView tv = new TextView(context);
ViewTreeObserver vto = tv.getViewTreeObserver();
vto.addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Layout l = tv.getLayout();
int height = tv.getHeight();
int scrollY = tv.getScrollY();
/**
* Key part
*/
int lineCount = l.getLineForVertical(height + scrollY);
int start = l.getLineStart(0);
int end = l.getLineEnd(lineCount - 1);
/**
* Cut string
*/
String s = tv.getText().toString().substring(start, end);
}
}
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句