将溢出的文本从一个TextView传输到另一个TextView

时间:2015-04-09 11:24:16

标签: android textview

我正在尝试构建类似 文本阅读器 的内容。它必须有一个水平滑动(正常书籍),而不是向下滚动。

为了实现这一点,我正在使用许多 TextViews 动态填充 ViewFlipper 。直观的想法是,我在之前的 TextView 溢出上创建了一个新的 TextView ,并将其添加到 ViewFlipper

我可以通过 setMaxLines()来实现这一目标,但是我无法获得超出该最大行的文本。

问题:

如何在溢出时将文本从一个TextView移动到另一个TextView

我决定使用的方法根本上是错误的吗?

编辑:

抱歉,由于某种原因,我无法解决问题。也许这会有所帮助:

TextView text1, text2;
String s = "Extreamly long string. Much longer than this one";
text1.setText(s);
text2.setText( // Text that is overflowing //);

如何确定String的哪个部分可见,以及哪个部分溢出?

由于

1 个答案:

答案 0 :(得分:0)

    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);

                }

            }
    );